Ver código fonte

修改广告主信息页面

xuzuoyun 5 anos atrás
pai
commit
36ff174cae

+ 19 - 31
src/views/modules/advertiser/AdvertiserList.vue

@@ -11,36 +11,22 @@
               <a-input placeholder="请输入广告主名称" v-model="queryParam.name"></a-input>
             </a-form-item>
           </a-col>
-          <a-col :md="6" :sm="8">
-            <a-form-item label="行业ID">
-              <a-input placeholder="请输入行业ID" v-model="queryParam.industryId"></a-input>
+          <a-col :md="6" :sm="6">
+            <a-form-item label="行业">
+              <j-tree-select
+                v-model="queryParam.industryId"
+                ref="treeSelect"
+                placeholder="请选择行业"
+                dict="sys_category,name,id"
+                pidField="pid"
+                pidValue="f5cb2d2d28417b3b65a6dd744bcb9a76">
+              </j-tree-select>
             </a-form-item>
           </a-col>
-          <template v-if="toggleSearchStatus">
-            <a-col :md="6" :sm="8">
-              <a-form-item label="联系人姓名">
-                <a-input placeholder="请输入联系人姓名" v-model="queryParam.contact"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="联系人手机">
-                <a-input placeholder="请输入联系人手机" v-model="queryParam.mobile"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="联系人邮箱">
-                <a-input placeholder="请输入联系人邮箱" v-model="queryParam.email"></a-input>
-              </a-form-item>
-            </a-col>
-          </template>
           <a-col :md="6" :sm="8">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
             </span>
           </a-col>
 
@@ -51,11 +37,11 @@
     <!-- 操作按钮区域 -->
     <div class="table-operator">
       <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('广告主信息表')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
-                @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
+<!--      <a-button type="primary" icon="download" @click="handleExportXls('广告主信息表')">导出</a-button>-->
+<!--      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"-->
+<!--                @change="handleImportExcel">-->
+<!--        <a-button type="primary" icon="import">导入</a-button>-->
+<!--      </a-upload>-->
       <a-dropdown v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay">
           <a-menu-item key="1" @click="batchDel">
@@ -120,12 +106,14 @@
 <script>
   import AdvertiserModal from './modules/AdvertiserModal'
   import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+  import JTreeSelect from '@/components/jeecg/JTreeSelect'
 
   export default {
     name: "AdvertiserList",
     mixins: [JeecgListMixin],
     components: {
-      AdvertiserModal
+      AdvertiserModal,
+      JTreeSelect
     },
     data() {
       return {
@@ -148,7 +136,7 @@
             dataIndex: 'name'
           },
           {
-            title: '行业ID',
+            title: '行业',
             align: "center",
             dataIndex: 'industryId'
           },

+ 13 - 2
src/views/modules/advertiser/modules/AdvertiserModal.vue

@@ -20,8 +20,15 @@
         <a-form-item
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
-          label="行业ID">
-          <a-input placeholder="请输入行业ID" v-decorator="['industryId', validatorRules.industryId ]"/>
+          label="行业">
+          <j-tree-select
+            ref="treeSelect"
+            placeholder="请选择行业"
+            v-decorator="['industryId', validatorRules.pid]"
+            dict="sys_category,name,id"
+            pidField="pid"
+            pidValue="f5cb2d2d28417b3b65a6dd744bcb9a76">
+          </j-tree-select>
         </a-form-item>
         <a-form-item
           :labelCol="labelCol"
@@ -50,10 +57,14 @@
 <script>
   import {httpAction} from '@/api/manage'
   import pick from 'lodash.pick'
+  import JTreeSelect from '@/components/jeecg/JTreeSelect'
   import moment from "moment"
 
   export default {
     name: "AdvertiserModal",
+    components: {
+      JTreeSelect
+    },
     data() {
       return {
         title: "操作",

+ 9 - 4
src/views/modules/appad/AdList.vue

@@ -66,13 +66,18 @@
                   />
                 </a-form-item>
               </a-col>
-
+              <a-col :md="8" :sm="8">
+                <a-form-item label="发布人">
+                  <a-input placeholder="请输入发布人昵称" v-model="queryParam.userName"></a-input>
+                </a-form-item>
+              </a-col>
             </a-row>
             <a-row :gutter="24">
               <a-col :md="8" :sm="8">
                 <a-form-item label="排序">
                   <a-radio-group v-model="queryParam.orderByColumn">
-                    <a-radio-button value="time">按时间</a-radio-button>
+                    <a-radio-button value="create_time">按抓取时间</a-radio-button>
+                    <a-radio-button value="time">按发布时间</a-radio-button>
                     <a-radio-button value="view_count">按展示数</a-radio-button>
                     <a-radio-button value="like_count">按喜欢数</a-radio-button>
                     <a-radio-button value="comment_count">按评论数</a-radio-button>
@@ -144,7 +149,7 @@
     data() {
       return {
         queryParam: {
-          orderByColumn: 'time',
+          orderByColumn: 'create_time',
           orderByType: 'desc',
           start: '',
           end: ''
@@ -191,7 +196,7 @@
       },
       searchReset() {
         this.queryParam = {
-          orderByColumn: 'time',
+          orderByColumn: 'create_time',
           orderByType: 'desc'
         }
         this.imgsArr = []

+ 142 - 15
src/views/modules/kuaishouapp/KuaishouAdAccountList.vue

@@ -5,20 +5,77 @@
     <div class="table-page-search-wrapper">
       <a-form layout="inline">
         <a-row :gutter="24">
-
-          <a-col :md="6" :sm="8">
+          <a-col :md="6" :sm="6">
+            <a-form-item label="行业">
+              <j-tree-select
+                v-model="queryParam.industry"
+                ref="treeSelect"
+                placeholder="请选择行业"
+                dict="sys_category,name,id"
+                pidField="pid"
+                pidValue="67d69117968be1eecb1e705b399b9d93">
+              </j-tree-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="6">
+            <a-form-item label="广告主公司">
+              <a-select
+                showSearch
+                v-model="queryParam.company"
+                placeholder="请输入公司名称"
+                :defaultActiveFirstOption="false"
+                :showArrow="false"
+                :filterOption="false"
+                @search="handleCompanySearch"
+                @change="handleCompanyChange"
+                :notFoundContent="null"
+              >
+                <a-select-option v-for="d in companyData" :key="d.value">{{d.text}}</a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="6">
+            <a-form-item label="推广产品">
+              <a-select
+                showSearch
+                v-model="queryParam.product"
+                placeholder="请输入产品名称"
+                :defaultActiveFirstOption="false"
+                :showArrow="false"
+                :filterOption="false"
+                @search="handleProductSearch"
+                @change="handleProductChange"
+                :notFoundContent="null"
+              >
+                <a-select-option v-for="d in productData" :key="d.value">{{d.text}}</a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :md="6" :sm="6">
             <a-form-item label="快手ID">
               <a-input placeholder="请输入快手ID" v-model="queryParam.ksid"></a-input>
             </a-form-item>
           </a-col>
-          <template>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="快手昵称">
-                <a-input placeholder="请输入快手昵称" v-model="queryParam.name"></a-input>
-              </a-form-item>
-            </a-col>
-          </template>
-          <a-col :md="6" :sm="8">
+          <a-col :md="6" :sm="6">
+            <a-form-item label="快手昵称">
+              <a-input placeholder="请输入快手昵称" v-model="queryParam.name"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="6">
+            <a-form-item label="完整度">
+              <a-radio-group v-model="queryParam.dataProcess">
+                <a-radio-button value="full">完整</a-radio-button>
+                <a-radio-button value="industry">缺失行业</a-radio-button>
+                <a-radio-button value="company">缺失企业</a-radio-button>
+                <a-radio-button value="product">缺失产品</a-radio-button>
+              </a-radio-group>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row>
+          <a-col :md="6" :sm="6">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
@@ -30,9 +87,9 @@
     </div>
 
     <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-    </div>
+<!--    <div class="table-operator">-->
+<!--      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
+<!--    </div>-->
 
     <!-- table区域-begin -->
     <div>
@@ -65,12 +122,30 @@
 <script>
   import KuaishouAdAccountModal from './modules/KuaishouAdAccountModal'
   import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+  import {getAction} from '@/api/manage'
+  import JTreeSelect from '@/components/jeecg/JTreeSelect'
+  import ARow from "ant-design-vue/es/grid/Row";
+  let timeout;
+  let currentValue;
+  function fetch(value, callback) {
+    if (timeout) {
+      clearTimeout(timeout);
+      timeout = null;
+    }
+    currentValue = value;
 
+    function fake() {
+    }
+
+    timeout = setTimeout(fake, 300);
+  }
   export default {
     name: "KuaishouAdAccountList",
     mixins: [JeecgListMixin],
     components: {
-      KuaishouAdAccountModal
+      ARow,
+      KuaishouAdAccountModal,
+      JTreeSelect
     },
     data() {
       return {
@@ -140,7 +215,15 @@
           deleteBatch: "/ctop/kuaishou/advertiser/deleteBatch",
           exportXlsUrl: "/ctop/kuaishou/advertiser/exportXls",
           importExcelUrl: "/ctop/kuaishou/advertiser/importExcel",
+          companySugestUrl: '/ctop/kuaishou/advertiser/companysugest',
+          productSugestUrl: '/ctop/kuaishou/advertiser/productsugest',
+        },
+        queryParam:{
+          dataProcess:'full'
         },
+        companyData: [],
+        productData: [],
+        value: undefined,
       }
     },
     computed: {
@@ -148,7 +231,51 @@
         return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
       }
     },
-    methods: {}
+    methods: {
+      handleProductSearch(value) {
+        getAction(this.url.productSugestUrl, {product: value})
+          .then((res) => {
+            console.log(res)
+            if (currentValue === value) {
+              const result = res.result;
+              const data = [];
+              result.forEach((r) => {
+                data.push({
+                  value: r,
+                  text: r,
+                });
+              });
+              this.productData = data
+            }
+          });
+        fetch(value);
+      },
+      handleProductChange(value) {
+        this.value = value
+        fetch(value, data => this.productData = data);
+      },
+      handleCompanySearch(value) {
+        getAction(this.url.companySugestUrl, {company: value})
+          .then((res) => {
+            if (currentValue === value) {
+              const result = res.result;
+              const data = [];
+              result.forEach((r) => {
+                data.push({
+                  value: r,
+                  text: r,
+                });
+              });
+              this.companyData = data
+            }
+          });
+        fetch(value);
+      },
+      handleCompanyChange(value) {
+        this.value = value
+        fetch(value, data => this.companyData = data);
+      },
+    }
   }
 </script>
 <style scoped>

+ 38 - 9
src/views/modules/kuaishouapp/modules/KuaishouAdAccountModal.vue

@@ -15,7 +15,7 @@
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
           label="快手ID">
-          <a-input placeholder="请输入快手ID" v-decorator="['ksid', validatorRules.ksid ]"/>
+          <a-input placeholder="请输入快手ID" disabled v-decorator="['ksid', validatorRules.ksid ]"/>
         </a-form-item>
         <a-form-item
           :labelCol="labelCol"
@@ -29,7 +29,19 @@
           label="快手昵称">
           <a-input placeholder="请输入快手昵称" v-decorator="['name', {}]"/>
         </a-form-item>
-
+        <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="行业">
+          <j-tree-select
+            ref="treeSelect"
+            placeholder="请选择行业"
+            v-decorator="['industry', validatorRules.pid]"
+            dict="sys_category,name,id"
+            pidField="pid"
+            pidValue="67d69117968be1eecb1e705b399b9d93">
+          </j-tree-select>
+        </a-form-item>
         <a-form-item
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
@@ -48,12 +60,16 @@
 </template>
 
 <script>
-  import {httpAction} from '@/api/manage'
+  import {httpAction,getAction} from '@/api/manage'
   import pick from 'lodash.pick'
+  import JTreeSelect from '@/components/jeecg/JTreeSelect'
   import moment from "moment"
 
   export default {
     name: "KuaishouAdAccountModal",
+    components: {
+      JTreeSelect
+    },
     data() {
       return {
         title: "操作",
@@ -87,12 +103,25 @@
       },
       edit(record) {
         this.form.resetFields();
-        this.model = Object.assign({}, record);
+        let param = {
+          field:'name',
+          val:record.secondIndustry
+        }
         this.visible = true;
-        this.$nextTick(() => {
-          this.form.setFieldsValue(pick(this.model, 'ksid', 'kaid', 'name', 'industryCategory', 'firstIndustry', 'secondIndustry', 'company', 'product', 'status'))
-          //时间格式化
-        });
+        getAction('/sys/category/loadOne',param).then((res) => {
+          if (res.success) {
+            record.industry=res.result.id
+
+          }
+        }).finally(() => {
+          this.model = Object.assign({}, record);
+          this.$nextTick(() => {
+            this.form.setFieldsValue(pick(this.model, 'ksid', 'kaid', 'name', 'industry', 'company', 'product', 'status'))
+            //时间格式化
+          });
+          console.log(this.model)
+        })
+
 
       },
       close() {
@@ -107,7 +136,7 @@
             that.confirmLoading = true;
             let httpurl = '';
             let method = '';
-            if (!this.model.id) {
+            if (!this.model.ksid) {
               httpurl += this.url.add;
               method = 'post';
             } else {