Jing 1 vecka sedan
förälder
incheckning
7df7242aae
4 ändrade filer med 154 tillägg och 102 borttagningar
  1. 3 4
      src/views/news/GoodListApply.vue
  2. 88 34
      src/views/news/addGood.vue
  3. 6 6
      src/views/news/creatNews.vue
  4. 57 58
      src/views/news/surveyList.vue

+ 3 - 4
src/views/news/GoodListApply.vue

@@ -7,7 +7,7 @@
           <el-col :span="8">
             <div class="searchBox">
               <div class="searchTitle">发布类型:</div>
-              <el-select v-model="getApiData.type_id" placeholder="请选择..">
+              <el-select v-model="getApiData.type_id" placeholder="请选择发布类型">
                 <el-option label="供应商品" value="1"></el-option>
                 <el-option label="求购商品" value="2"></el-option>
               </el-select>
@@ -50,7 +50,7 @@
 
     <div class="layerBoxNoBg">
       <div>
-        <el-button type="primary" @click="goCreat">发布商品</el-button>
+        <!-- <el-button type="primary" @click="goCreat">发布商品</el-button> -->
       </div>
       <div>
         <el-button @click="clearSearchList">重置</el-button>
@@ -80,9 +80,8 @@
             <el-table-column prop="name" label="名称" width=""></el-table-column>
             <el-table-column prop="cityname" label="发布地点" width=""></el-table-column>
             <el-table-column prop="website_name" label="网站名称" width="">
-
             </el-table-column>
-            <el-table-column prop="category_name" label="导航池名称" width=""></el-table-column>
+            <el-table-column prop="category_name" label="栏目名称" width=""></el-table-column>
             <el-table-column prop="status" label="审核状态" width="">
               <template slot-scope="scope">
                 <span v-if="scope.row.status == 1">

+ 88 - 34
src/views/news/addGood.vue

@@ -10,7 +10,6 @@
               <el-radio :label="2">求购商品</el-radio>
             </el-radio-group>
           </el-form-item>
-
           <el-form-item label="商品名称:" prop="name" class="custom-align-right">
             <template #label>
               <span class="askBox" v-if="form.type_id == 1">
@@ -23,20 +22,27 @@
             <el-input v-model="form.name" autocomplete="off" placeholder="请输入商品标题"></el-input>
           </el-form-item>
           <el-form-item label="发布地点:" prop="city_arr_id" class="custom-align-right">
-            <el-cascader :key="cascaderKey" v-model="form.city_arr_id" placeholder="发布地区:" :props="cityData" filterable
-              clearable></el-cascader>
+            <el-cascader :key="cascaderKey" v-model="form.city_arr_id" placeholder="请选择发布地点" :props="cityData"
+              filterable clearable></el-cascader>
           </el-form-item>
-          <el-form-item label="站:" prop="website_id" class="custom-align-right" v-if="userType != 10000">
-            <el-select v-model="form.website_id" placeholder="请选择站" filterable clearable>
+          <el-form-item label="站点名称:" prop="website_id" class="custom-align-right" v-if="userType == 10000">
+            <el-select v-model="form.website_id" placeholder="请选择站点名称" filterable clearable>
               <el-option v-for="item in websiteOptions" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
             </el-select>
           </el-form-item>
-
-          <el-form-item label="导航池名称:" prop="cat_arr_id" class="custom-align-right">
-            <el-cascader :key="parentKey" v-model="form.cat_arr_id" placeholder="请选择要绑定的导航池名称" :props="parentData"
+          <el-form-item label="展示名称:" prop="cat_arr_id" class="custom-align-right">
+            <el-cascader :key="parentKey" v-model="form.cat_arr_id" placeholder="请选择要绑定的展示名称" :props="parentData"
               filterable clearable></el-cascader>
           </el-form-item>
+          <div v-if="user_type == 10000">
+            <el-form-item label="推荐等级:" class="custom-align-right">
+              <el-select v-model="form.level" multiple clearable placeholder="请选择推荐等级.." @change="levelChange">
+                <el-option label="为你精选" :value="1"></el-option>
+                <el-option label="热门产品" :value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
           <div v-if="form.type_id == 1">
             <el-form-item label="商品单价:" prop="price" class="custom-align-right">
               <el-input type="number" v-model="form.price" autocomplete="off" placeholder="请输入商品单价">
@@ -70,28 +76,26 @@
               <el-checkbox v-model="form.islong">无期限</el-checkbox>
             </el-form-item>
           </div>
-
           <el-form-item label="商品图:" class="custom-align-right" prop="imgurl">
             <div class="uploaderBox">
-
               <span v-if="imgurl.length > 0" class="uploaded-images">
-                <div v-for="(url, index) in imgurl" :key="index" style="display: inline;float: left; width: 150px;;">
-
+                <div v-for="(url, index) in imgurl" :key="index"
+                  style="display: inline;float: left; width: 150px; height:140px;">
                   <img :src="url" class="avatar" style="float: left; margin-right: 10px;">
                   <div style="position: relative;
-                                transform: translate(-50%, -50%);
-                                right: -120px;
-                                top: -20px;
-                                background-color: rgba(0, 0, 0, 0.5);
-                                color: white;
-                                border-radius: 50%;
-                                width: 24px;
-                                height: 24px;
-                                display: flex;
-                                align-items: center;
-                                justify-content: center;
-                                cursor: pointer;
-                                z-index: 10;" @click="deleteImage(index)">
+                    transform: translate(-50%, -50%);
+                    right: -120px;
+                    top: -20px;
+                    background-color: rgba(0, 0, 0, 0.5);
+                    color: white;
+                    border-radius: 50%;
+                    width: 24px;
+                    height: 24px;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    cursor: pointer;
+                    z-index: 10;" @click="deleteImage(index)">
                     <i class="el-icon-delete"></i>
                   </div>
                 </div>
@@ -102,13 +106,12 @@
                   <img src="@/assets/public/upload/noImage.png">
                   <div>选择图片</div>
                 </div>
-
               </el-upload>
             </div>
           </el-form-item>
-          <div class="imgBox" style="margin-left: 100px ;margin-bottom: 20px; padding-top: -20px;">
-            最多可上传5张,每张图片大小不能超过500K,推荐上传图片尺寸
-            宽1000像素 高1000像素。(首张显示为商品头图)</div>
+          <div class="imgBox" style="margin-left: 125px ;margin-bottom: 20px; padding-top: -20px;">
+            最多可上传5张,每张图片大小不能超过 500 K,推荐上传图片尺寸 宽1000像素 高1000像素。(首张显示为商品头图)
+          </div>
           <el-form-item label="商品关键词:" prop="keyword" class="custom-align-right">
             <el-input v-model="form.keyword" autocomplete="off" placeholder="请输入商品关键词"></el-input>
           </el-form-item>
@@ -212,7 +215,7 @@ export default {
       searchCascaderKey: 0, //列表缓存key
       // imgurl: ['http://192.168.1.127:9501/image/20250227/1740674706184955.jpg', 'http://192.168.1.127:9501/image/20250227/1740674706184955.jpg'],//图片路径
       website_id: 2,
-
+      creatNews_user_type: 0,//判断用户类型',
       //提交表单
       form: {
         //1.1使用了外链
@@ -225,6 +228,7 @@ export default {
         catid: "",
         cat_arr_id: "",
         name: "",
+        level: [],//推荐等级
         price: "",
         unit: "",
         min: null,
@@ -455,9 +459,9 @@ export default {
       this.$store.dispatch('public/getInfo').then(res => {
         console.log(res)
         this.userType = res.data.type_id;
-        if (this.userType == 10000) {
-          this.form.website_id = getWebSiteId() !== undefined ? getWebSiteId() : 2;;
-        }
+        // if (this.userType == 10000) {
+        //   this.form.website_id = getWebSiteId() !== undefined ? getWebSiteId() : 2;;
+        // }
         //if(res.data.type_id==10000){}//管理员
         //if(res.data.type_id==4){}//调研员
         //个人会员=1 政务会员=2 企业会员=3 调研员=4 管理员=10000 游客=20000
@@ -513,6 +517,12 @@ export default {
         }
         console.log(this.form.validity, 'this.form.validity-----------------')
         if (valid) {
+          //如果推荐等级为空,则设置为0
+          if (this.form.level == "" || this.form.level == "[0]") {
+            this.form.level = "[0]";
+          } else {
+            this.form.level = JSON.stringify(this.form.level);
+          }
           if (this.form.validity) {
             console.log(this.form.validity, 'p0------------------')
             this.form.validity = formatLocalDate(this.form.validity);
@@ -599,7 +609,6 @@ export default {
         this.parentKey += 1; // 触发级联选择器重新加载
         this.loadCascaderPath(this.form.cat_arr_id); // 加载路径数据
         //回显推荐等级
-
         this.form.imgurl = Array.isArray(res.data.imgurl) ? res.data.imgurl : JSON.parse(res.data.imgurl);
         this.imgurl = Array.isArray(res.data.imgurl) ? res.data.imgurl : JSON.parse(res.data.imgurl);
         this.form.keyword = res.data.keyword;
@@ -625,6 +634,12 @@ export default {
         this.form.email = res.data.email;
         this.form.postal = res.data.postal;
         this.form.address = res.data.address;
+        this.form.level = res.data.level;
+        if (res.data.level == "[]" || res.data.level == "") {
+          this.form.level = [];
+        } else {
+          this.form.level = JSON.parse(res.data.level);
+        }
       })
     },
     async loadCascaderPath(path) {
@@ -670,6 +685,12 @@ export default {
       this.$refs.form.validate(valid => {
 
         if (valid) {
+          //如果推荐等级为空,则设置为0
+          if (this.form.level == "" || this.form.level == "[]" || this.form.level == null) {
+            this.form.level = "[]";
+          } else {
+            this.form.level = JSON.stringify(this.form.level);
+          }
           if (this.form.validity) {
             console.log(this.form.validity, 'p0------------------')
             this.form.validity = formatLocalDate(this.form.validity);
@@ -720,6 +741,10 @@ export default {
         }
       })
     },
+    //推荐等级选择
+    levelChange(value) {
+      this.form.level = value;
+    },
     //跳转操作 end ------------------------------------------------------------>
   },
   watch: {
@@ -845,4 +870,33 @@ export default {
   }
 }
 
+::v-deep .el-upload {
+  display: inline-block;
+  text-align: center;
+  cursor: pointer;
+  outline: none;
+  border: 1px solid #ccc;
+  padding: 26px 20px;
+  border-radius: 10px;
+  width: 140px;
+  height: 140px;
+}
+
+::v-deep .avatar {
+  width: 140px;
+  height: 140px;
+  display: block;
+  border: 1px solid #ccc;
+  padding: 5px;
+  border-radius: 10px;
+  box-sizing: border-box;
+}
+
+::v-deep .el-checkbox {
+  margin-left: 20px;
+}
+.imgBox{
+  color: #999;
+}
+
 //执行v-deep穿透scope选择器 end------------------------------------------------------------>*/</style>

+ 6 - 6
src/views/news/creatNews.vue

@@ -14,8 +14,8 @@
                 :options="creatNews_nav_pool_arr" @change="creatNews_nav_pool_change_fun(form.web_site_id)" filterable
                 clearable></el-cascader>
             </el-form-item>
-            <el-form-item label="栏目名称:" prop="cat_arr_id" class="custom-align-right">
-              <el-cascader :key="parentKey_2" v-model="form.cat_arr_id" placeholder="请选择要绑定的父级名称" :props="parentData_2"
+            <el-form-item label="展示名称:" prop="cat_arr_id" class="custom-align-right">
+              <el-cascader :key="parentKey_2" v-model="form.cat_arr_id" placeholder="请选择要绑定的展示名称" :props="parentData_2"
                 popper-class="my_cascader" filterable clearable></el-cascader>
             </el-form-item>
             <el-form-item label="外链地址:" prop="linkurl" class="custom-align-right">
@@ -27,8 +27,8 @@
           </div>
           <div v-if="form.islink == false">
             <div v-if="creatNews_user_type != 10000">
-              <el-form-item label="栏目名称:" prop="cat_arr_id" class="custom-align-right">
-                <el-cascader :key="parentKey" v-model="form.cat_arr_id" placeholder="请选择要绑定的栏目名称" :props="parentData"
+              <el-form-item label="展示名称:" prop="cat_arr_id" class="custom-align-right">
+                <el-cascader :key="parentKey" v-model="form.cat_arr_id" placeholder="请选择要绑定的展示名称" :props="parentData"
                   popper-class="my_cascader" style="height: 100%;" filterable clearable></el-cascader>
               </el-form-item>
             </div>
@@ -39,8 +39,8 @@
                     popper-class="my_cascader" :options="creatNews_nav_pool_arr"
                     @change="creatNews_nav_pool_change_fun(form.web_site_id)" filterable clearable></el-cascader>
                 </el-form-item>
-                <el-form-item label="栏目名称:" prop="cat_arr_id" class="custom-align-right">
-                  <el-cascader :key="parentKey_2" v-model="form.cat_arr_id" placeholder="请选择要绑定的父级名称"
+                <el-form-item label="展示名称:" prop="cat_arr_id" class="custom-align-right">
+                  <el-cascader :key="parentKey_2" v-model="form.cat_arr_id" placeholder="请选择要绑定的展示名称"
                     popper-class="my_cascader" style="height: 100%;" :props="parentData_2" filterable
                     clearable></el-cascader>
                 </el-form-item>

+ 57 - 58
src/views/news/surveyList.vue

@@ -4,13 +4,13 @@
         <!-- 头部搜索框部分 -->
         <div class="title">
             <el-row>
-                <el-col :span="11" class="left">
+                <el-col :span="8" class="left">
                     <div class="searchBox">
                         <div class="searchTitle">投票名称</div>
                         <el-input v-model="tabbarName" class="input" placeholder="请输入投票名称" :maxlength="10"></el-input>
                     </div>
                 </el-col>
-                <el-col :span="11" class="left">
+                <el-col :span="8" class="left">
                     <div class="searchBox">
                         <div class="searchTitle">投票类型</div>
                         <el-select v-model="typeid" placeholder="请选择投票类型...">
@@ -19,7 +19,7 @@
                         </el-select>
                     </div>
                 </el-col>
-<!-- 
+                <!-- 
 <el-col :span="8" class="left">
     <div class="searchBox">
         <div class="searchTitle">是否开启</div>
@@ -30,9 +30,6 @@
     </div>
 </el-col>
 -->
-                
-            </el-row>
-            <el-row>
                 <el-col :span="8" class="right">
                     <div class="btnList">
                         <button class="search" @click="goSearch">搜索</button>
@@ -50,12 +47,12 @@
                         <el-table-column prop="id" label="编号" width="90">
                         </el-table-column>
                         <el-table-column prop="survey_name" label="投票名称" width="500"></el-table-column>
-                        <el-table-column prop="survey_type" label="投票类型" width="100" >
+                        <el-table-column prop="survey_type" label="投票类型" width="100">
                             <template slot-scope="scope">
-                                <span v-if="scope.row.survey_type==1">
+                                <span v-if="scope.row.survey_type == 1">
                                     多选
                                 </span>
-                                <span v-if="scope.row.survey_type==0">
+                                <span v-if="scope.row.survey_type == 0">
                                     单选
                                 </span>
                             </template>
@@ -80,9 +77,9 @@
                             <template slot-scope="scope">
                                 <div class="listBtnBox">
                                     <div class="listLookBtn" @click="goLook(scope.row.survey_id)">
-                                      <i class="el-icon-view"></i>
-                                      查看
-                                  </div>
+                                        <i class="el-icon-view"></i>
+                                        查看
+                                    </div>
                                 </div>
                             </template>
                         </el-table-column>
@@ -106,20 +103,21 @@
 
         <!-- 弹出框 编辑 start----------------------------------------------------------->
         <el-dialog :title="dialogName" :visible.sync="dialogTableVisible" width="50%" top="8vh">
-          <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
-            <p style="font-size: 16px;"><b>投票名称:{{sur_name}}</b></p>
-            <el-table :data="choose" style="width: 100%" height="250" row-key="id" border lazy :load="load":tree-props="{children: 'children', hasChildren: 'hasChildren'}">
-                <el-table-column type="index" :index="indexMethod"></el-table-column>
-                <el-table-column prop="choice_name" label="选项名称"></el-table-column>
-                <el-table-column prop="results" label="投票结果" width="180"></el-table-column>
-            
-            </el-table>
-            <p style="font-size: 16px;text-align: right;margin-right: 80px;">总计:{{ total_num }}</p>
-              <div class="dialogBtn">
-                  <el-button type="primary" @click="cancelForm">确定</el-button>
-              </div>
-          </el-form>
-      </el-dialog>
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
+                <p style="font-size: 16px;"><b>投票名称:{{ sur_name }}</b></p>
+                <el-table :data="choose" style="width: 100%" height="250" row-key="id" border lazy :load="load"
+                    :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+                    <el-table-column type="index" :index="indexMethod"></el-table-column>
+                    <el-table-column prop="choice_name" label="选项名称"></el-table-column>
+                    <el-table-column prop="results" label="投票结果" width="180"></el-table-column>
+
+                </el-table>
+                <p style="font-size: 16px;text-align: right;margin-right: 80px;">总计:{{ total_num }}</p>
+                <div class="dialogBtn">
+                    <el-button type="primary" @click="cancelForm">确定</el-button>
+                </div>
+            </el-form>
+        </el-dialog>
         <!-- 弹出框 编辑 end----------------------------------------------------------->
     </div>
 </template>
@@ -163,25 +161,25 @@ export default {
                 tabbarName: '', //底部导航名称
             },
             rules: {
-                tabbarName: [{ required: true, message:"课题分类名称不能为空"}],
+                tabbarName: [{ required: true, message: "课题分类名称不能为空" }],
             }
         }
     },
-    methods: {         
+    methods: {
         //1.1 开始请求列表信息方法
-        getData(){
+        getData() {
             let formData = {
                 page: this.page,
                 pageSize: this.pageSize,
-                survey_name:this.tabbarName,
-                survey_type:this.typeid,
-                is_survey:this.status
+                survey_name: this.tabbarName,
+                survey_type: this.typeid,
+                is_survey: this.status
             }
             this.$store.dispatch('news/getSurveyList', formData).then(res => {
                 if (res.code == 200) {
                     this.tableData = res.data.rows;
-                    this.total = res.data.count;  
-                }else{
+                    this.total = res.data.count;
+                } else {
                     this.$message({
 
 
@@ -196,7 +194,7 @@ export default {
                 });
             })
         },
-         //1.2 列表内容分页
+        //1.2 列表内容分页
         //直接跳转
         handleSizeChange(val) {
             this.page = val;
@@ -219,19 +217,19 @@ export default {
             this.status = ""
             this.getData()
         },
-       //取消添加或编辑
+        //取消添加或编辑
         cancelForm() {
             this.dialogTableVisible = false
         },
-       
+
         //列表和分页相关 end ------------------------------------------------------------>
         // //1.9 查看
-        goLook(id, val) { 
+        goLook(id, val) {
             this.dialogName = '查看'
 
             this.activeid = id
             this.dialogTableVisible = true
-            this.disabled=true
+            this.disabled = true
             //数据回显\
             this.getSurveyInfo(id);
             // this.ruleForm.tabbarName = val.survey_name //课题分类名称
@@ -242,33 +240,33 @@ export default {
         addTopicClass() {
             this.dialogTableVisible = true
             this.dialogName = "添加"
-            this.disabled=false
+            this.disabled = false
             //添加时清空回显回来的数据
             this.ruleForm.tabbarName = '' //课题分类名称
         },
 
         getSurveyInfo(sur_id) {
-          if (sur_id !== '') {
-              let data = { sur_id: sur_id }
-              this.$store.dispatch('news/getSurveyInfo', data).then(res => {
-                 if(res.code==200){
-                    this.sur_name = res.data.choose[0].survey_name
-                    this.total_num = res.data.total
-                    if(res.data.choose.length>0){
-                        this.choose = res.data.choose
+            if (sur_id !== '') {
+                let data = { sur_id: sur_id }
+                this.$store.dispatch('news/getSurveyInfo', data).then(res => {
+                    if (res.code == 200) {
+                        this.sur_name = res.data.choose[0].survey_name
+                        this.total_num = res.data.total
+                        if (res.data.choose.length > 0) {
+                            this.choose = res.data.choose
+                        }
+                        // console.log(res.data.other.id);
                     }
-                    // console.log(res.data.other.id);
-                 }
                 }).catch(() => {
-                  this.$message({
-                      type: 'info',
-                      message: '网络错误,请重试!'
-                  });
-               })
-          } 
+                    this.$message({
+                        type: 'info',
+                        message: '网络错误,请重试!'
+                    });
+                })
+            }
         },
         indexMethod(index) {
-            return index +1;
+            return index + 1;
         },
         load(tree, treeNode, resolve) {
             setTimeout(() => {
@@ -285,7 +283,7 @@ export default {
                 resolve(allChildren);
             }, 1000);
         }
-      
+
     },
     mounted() {
         this.getData()
@@ -389,6 +387,7 @@ input[aria-hidden=true] {
         }
     }
 }
+
 .layerBox {
     padding: 30px 20px;
     position: relative;