瀏覽代碼

定时任务分页问题

zhuxinbo 5 年之前
父節點
當前提交
97b5f60654

+ 125 - 151
src/views/list/MediaList.vue

@@ -1,152 +1,126 @@
-<template>
-  <a-card :bordered="false">
-
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline">
-        <a-row :gutter="24">
-
-          <a-col :md="6" :sm="8">
-            <a-form-item label="媒体名称">
-              <a-input placeholder="请输入媒体名称" v-model="queryParam.name"></a-input>
-            </a-form-item>
-          </a-col>
-
-          <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>
-
-        </a-row>
-      </a-form>
-    </div>
-
-    <!-- 操作按钮区域 -->
-    <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-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete"/>
-            删除
-          </a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作
-          <a-icon type="down"/>
-        </a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
-        selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical"/>
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-    <!-- table区域-end -->
-
-    <!-- 表单区域 -->
-    <media-modal ref="modalForm" @ok="modalFormOk"></media-modal>
-  </a-card>
-</template>
-
-<script>
-  import MediaModal from './modules/MediaModal'
-  import {JeecgListMixin} from '@/mixins/JeecgListMixin'
-
-  export default {
-    name: "MediaList",
-    mixins: [JeecgListMixin],
-    components: {
-      MediaModal
-    },
-    data() {
-      return {
-        description: '媒体表管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key: 'rowIndex',
-            width: 60,
-            align: "center",
-            customRender: function (t, r, index) {
-              return parseInt(index) + 1;
-            }
-          },
-          {
-            title: '媒体名称',
-            align: "center",
-            dataIndex: 'name'
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align: "center",
-            scopedSlots: {customRender: 'action'},
-          }
-        ],
-        url: {
-          list: "/ctop/media/list",
-          delete: "/ctop/media/delete",
-          deleteBatch: "/ctop/media/deleteBatch",
-          exportXlsUrl: "/ctop/media/exportXls",
-          importExcelUrl: "/ctop/media/importExcel",
-        },
-      }
-    },
-    computed: {
-      importExcelUrl: function () {
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      }
-    },
-    methods: {}
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less'
+<template>
+  <a-card :bordered="false">
+
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="24">
+
+          <a-col :md="6" :sm="8">
+            <a-form-item label="媒体名称">
+              <a-input placeholder="请输入媒体名称" v-model="queryParam.name"></a-input>
+            </a-form-item>
+          </a-col>
+
+          <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>
+            </span>
+          </a-col>
+
+        </a-row>
+      </a-form>
+    </div>
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        @change="handleTableChange">
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical"/>
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span>
+
+      </a-table>
+    </div>
+    <!-- table区域-end -->
+
+    <!-- 表单区域 -->
+    <media-modal ref="modalForm" @ok="modalFormOk"></media-modal>
+  </a-card>
+</template>
+
+<script>
+  import MediaModal from './modules/MediaModal'
+  import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "MediaList",
+    mixins: [JeecgListMixin],
+    components: {
+      MediaModal
+    },
+    data() {
+      return {
+        description: '媒体表管理页面',
+        // 表头
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key: 'rowIndex',
+            width: 60,
+            align: "center",
+            customRender: function (t, r, index) {
+              return parseInt(index) + 1;
+            }
+          },
+          {
+            title: '媒体名称',
+            align: "center",
+            dataIndex: 'name'
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align: "center",
+            scopedSlots: {customRender: 'action'},
+          }
+        ],
+        url: {
+          list: "/ctop/media/list",
+          delete: "/ctop/media/delete",
+          deleteBatch: "/ctop/media/deleteBatch",
+          exportXlsUrl: "/ctop/media/exportXls",
+          importExcelUrl: "/ctop/media/importExcel",
+        },
+      }
+    },
+    computed: {
+      importExcelUrl: function () {
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      }
+    },
+    methods: {}
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
 </style>

+ 29 - 72
src/views/modules/Statistics/refuseData.vue

@@ -1,76 +1,11 @@
-<style>
-/* .data-display-statistics .ant-col-6 {
-  margin: 10px 0;
-}
-.data-display-statistics .ant-col-6 .ant-card-body {
-  display: flex;
-  justify-content: center;
-}
-.data-display-statistics .ant-col-6 p,
-.data-display-statistics .ant-col-6 span {
-  text-align: center;
-  line-height: 40px;
-  font-size: 30px;
-  font-weight: 600;
-  color: red;
-  margin: 0;
-}
-.search-box .ant-card-body {
-  padding: 5px 15px;
-}
-.data-display-statistics .ant-col-6 .ant-card-body .styleElse {
-  line-height: 60px;
-  height: 40px;
-  font-size: 16px;
-  font-weight: 400;
-  margin-left: 10px;
-}
-.ant-modal-wrap .yincang .ant-modal-content .ant-modal-footer {
-  display: none !important;
-}
-.yincang .ant-col-6 p {
-  text-align: left;
-  color: red;
-  font-size: 16px;
-  font-weight: 500;
-}
-.ant-table-thead div {
-  font-weight: 700;
-}
-.tool-tip {
-  position: absolute;
-  top: 65px;
-  right: 10px;
-}
-th div {
-  white-space: nowrap;
-}
-.data-display-statistics th {
-  text-align: center !important;
-} */
-</style>
+<style></style>
 <template>
   <div class="data-refuse-statistics">
     <a-row class="image-list-heading vm-panel">
-      <div class="panel-heading" style="display:flex;justify-content: space-between;">{{ title }}</div>
       <a-row type="flex" align="middle" justify="space-between" class="panel-body">
         <div class="search-bar" style="width:100%;display:flex">
-          <span style="line-height:35px">账户选择:</span>
-          <treeselect :appId.sync="appId" :multiple="false"/>
-          <!-- <a-select
-            v-model="appId"
-            showSearch
-            allowClear
-            placeholder="请选择账户"
-            optionFilterProp="children"
-            style="width:600px"
-          >
-            <a-select-option
-              v-for="appModel in options"
-              :key="appModel.id+new Date().getTime()"
-              :value="appModel.accountId"
-            >{{appModel.advertiserName}}&#12288;&#12288;{{appModel.accountId}}&#12288;&nbsp;&#12288;{{appModel.authName}}&#12288;&#12288;{{appModel.operationName}}</a-select-option>
-          </a-select> -->
+          <span style="line-height:35px;margin-left:15px">账户选择:</span>
+          <treeselect :appId.sync="appId" :multiple="false" />
           <a-button type="primary" style="margin-left:10px" @click="addUser">搜索</a-button>
         </div>
       </a-row>
@@ -83,7 +18,14 @@ th div {
             <a-button type="primary" style="margin-left:10px" @click="addUserKey">搜索</a-button>
           </div>
 
-          <a-table :columns="columns" :dataSource="dataList" bordered :loading="loading">
+          <a-table
+            :columns="columns"
+            :dataSource="dataList"
+            bordered
+            :loading="loading"
+            size="middle"
+            :pagination="ipagination"
+          >
             <div slot="videoUrl" slot-scope="videoUrl">
               <video class="video" :src="videoUrl" controls="controls" style="height:200px;width:112.5px">
                 您的浏览器不支持 video 标签。
@@ -93,14 +35,12 @@ th div {
               <img :src="coverUrl" controls="controls" style="height:200px;width:112.5px" />
             </div>
             <template slot="creativeName" slot-scope="text, record">
-              <!-- <editable-cell :text="text" @change="onCellChange(record, 'creativeName', $event)" /> -->
               <div>
                 {{ text }}
                 <a-icon type="edit" style="cursor: pointer;" @click="onCellChange(record, 'creativeName')" />
               </div>
             </template>
             <template slot="description" slot-scope="text, record">
-              <!-- <editable-cell :text="text" @change="onCellChange(record, 'description', $event)" /> -->
               <div>
                 {{ text }}
                 <a-icon type="edit" style="cursor: pointer;" @click="onCellChange(record, 'description')" />
@@ -214,7 +154,23 @@ export default {
       confirmLoading: false,
       visible: false,
       editWord: '',
-      nowData: null
+      nowData: null,
+      ipagination: {
+        current: 1,
+        pageSize: 10,
+        //   pageSizeOptions: ['10', '20', '30'],
+        showTotal: (total, range) => {
+          return range[0] + '-' + range[1] + ' 共' + total + '条'
+        },
+        showQuickJumper: true,
+        //   showSizeChanger: true,
+        total: 0,
+        onChange: current => {
+          // 切换分页时的回调,
+          // 当在页面定义change事件时,切记要把此处的事件清除,因为这两个事件重叠了,可能到时候会导致一些莫名的bug
+          this.ipagination.current = current
+        }
+      }
     }
   },
   filters: {},
@@ -266,6 +222,7 @@ export default {
             })
             this.list = this.dataList
             this.loading = false
+            this.ipagination.total = this.dataList.length
           }
         })
       } else {

+ 271 - 282
src/views/modules/kuaishouapp/KuaishouAdAccountList.vue

@@ -1,283 +1,272 @@
-<template>
-  <a-card :bordered="false">
-
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline">
-        <a-row :gutter="24">
-          <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>
-          <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>
-            </span>
-          </a-col>
-
-        </a-row>
-      </a-form>
-    </div>
-
-    <!-- 操作按钮区域 -->
-<!--    <div class="table-operator">-->
-<!--      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
-<!--    </div>-->
-
-    <!-- table区域-begin -->
-    <div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-        </span>
-
-      </a-table>
-    </div>
-    <!-- table区域-end -->
-
-    <!-- 表单区域 -->
-    <kuaishouAdAccount-modal ref="modalForm" @ok="modalFormOk"></kuaishouAdAccount-modal>
-  </a-card>
-</template>
-
-<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: {
-      ARow,
-      KuaishouAdAccountModal,
-      JTreeSelect
-    },
-    data() {
-      return {
-        description: '快手广告主信息管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key: 'rowIndex',
-            width: 60,
-            align: "center",
-            customRender: function (t, r, index) {
-              return parseInt(index) + 1;
-            }
-          },
-          {
-            title: '快手ID',
-            align: "center",
-            dataIndex: 'ksid'
-          },
-          {
-            title: '快手广告主ID',
-            align: "center",
-            dataIndex: 'kaid'
-          },
-          {
-            title: '快手昵称',
-            align: "center",
-            dataIndex: 'name'
-          },
-          {
-            title: '行业分类',
-            align: "center",
-            dataIndex: 'industryCategory'
-          },
-          {
-            title: '一级行业',
-            align: "center",
-            dataIndex: 'firstIndustry'
-          },
-          {
-            title: '二级行业',
-            align: "center",
-            dataIndex: 'secondIndustry'
-          },
-          {
-            title: '广告主企业名称',
-            align: "center",
-            dataIndex: 'company'
-          },
-          {
-            title: '推广产品',
-            align: "center",
-            dataIndex: 'product'
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align: "center",
-            scopedSlots: {customRender: 'action'},
-          }
-        ],
-        url: {
-          list: "/ctop/kuaishou/advertiser/list",
-          delete: "/ctop/kuaishou/advertiser/delete",
-          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: {
-      importExcelUrl: function () {
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      }
-    },
-    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>
-  @import '~@assets/less/common.less'
+<template>
+  <a-card :bordered="false">
+
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="24">
+          <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>
+          <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>
+            </span>
+          </a-col>
+
+        </a-row>
+      </a-form>
+    </div>
+
+    <!-- 操作按钮区域 -->
+<!--    <div class="table-operator">-->
+<!--      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
+<!--    </div>-->
+
+    <!-- table区域-begin -->
+    <div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        @change="handleTableChange">
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+        </span>
+
+      </a-table>
+    </div>
+    <!-- table区域-end -->
+
+    <!-- 表单区域 -->
+    <kuaishouAdAccount-modal ref="modalForm" @ok="modalFormOk"></kuaishouAdAccount-modal>
+  </a-card>
+</template>
+
+<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: {
+      ARow,
+      KuaishouAdAccountModal,
+      JTreeSelect
+    },
+    data() {
+      return {
+        description: '快手广告主信息管理页面',
+        // 表头
+        columns: [
+          {
+            title: '快手ID',
+            align: "center",
+            dataIndex: 'ksid'
+          },
+          {
+            title: '快手广告主ID',
+            align: "center",
+            dataIndex: 'kaid'
+          },
+          {
+            title: '快手昵称',
+            align: "center",
+            dataIndex: 'name'
+          },
+          {
+            title: '行业分类',
+            align: "center",
+            dataIndex: 'industryCategory'
+          },
+          {
+            title: '一级行业',
+            align: "center",
+            dataIndex: 'firstIndustry'
+          },
+          {
+            title: '二级行业',
+            align: "center",
+            dataIndex: 'secondIndustry'
+          },
+          {
+            title: '广告主企业名称',
+            align: "center",
+            dataIndex: 'company'
+          },
+          {
+            title: '推广产品',
+            align: "center",
+            dataIndex: 'product'
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align: "center",
+            scopedSlots: {customRender: 'action'},
+          }
+        ],
+        url: {
+          list: "/ctop/kuaishou/advertiser/list",
+          delete: "/ctop/kuaishou/advertiser/delete",
+          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: {
+      importExcelUrl: function () {
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      }
+    },
+    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>
+  @import '~@assets/less/common.less'
 </style>

+ 169 - 205
src/views/modules/kuaishouapp/KuaishouAppAccountList.vue

@@ -1,206 +1,170 @@
-<template>
-  <a-card :bordered="false">
-
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline">
-        <a-row :gutter="24">
-
-          <a-col :md="6" :sm="8">
-            <a-form-item label="请求地址">
-              <a-input placeholder="请输入请求地址" v-model="queryParam.url"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :md="6" :sm="8">
-            <a-form-item label="请求路径">
-              <a-input placeholder="请输入请求路径" v-model="queryParam.path"></a-input>
-            </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.token"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="url参数">
-                <a-input placeholder="请输入url参数" v-model="queryParam.urlParam"></a-input>
-              </a-form-item>
-            </a-col>
-            <a-col :md="6" :sm="8">
-              <a-form-item label="body参数">
-                <a-input placeholder="请输入body参数" v-model="queryParam.bodyParam"></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>
-
-        </a-row>
-      </a-form>
-    </div>
-
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('快手APP账号表')">导出</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">
-            <a-icon type="delete"/>
-            删除
-          </a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作
-          <a-icon type="down"/>
-        </a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
-        selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-        <span slot="dataContent" slot-scope="text, record">
-          <j-ellipsis :value="text" :length="60"/>
-        </span>
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical"/>
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-    <!-- table区域-end -->
-
-    <!-- 表单区域 -->
-    <kuaishouAppAccount-modal ref="modalForm" @ok="modalFormOk"></kuaishouAppAccount-modal>
-  </a-card>
-</template>
-
-<script>
-  import KuaishouAppAccountModal from './modules/KuaishouAppAccountModal'
-  import {JeecgListMixin} from '@/mixins/JeecgListMixin'
-  import JEllipsis from "@/components/jeecg/JEllipsis";
-
-  export default {
-    name: "KuaishouAppAccountList",
-    mixins: [JeecgListMixin],
-    components: {
-      KuaishouAppAccountModal,
-      JEllipsis
-    },
-    data() {
-      return {
-        description: '快手APP账号表管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key: 'rowIndex',
-            width: 60,
-            align: "center",
-            customRender: function (t, r, index) {
-              return parseInt(index) + 1;
-            }
-          },
-          {
-            title: '请求地址',
-            align: "center",
-            dataIndex: 'url'
-          },
-          {
-            title: '请求路径',
-            align: "center",
-            dataIndex: 'path'
-          },
-          {
-            title: '令牌',
-            align: "center",
-            dataIndex: 'token',
-            scopedSlots: {customRender: 'dataContent'}
-          },
-          {
-            title: 'url参数',
-            align: "center",
-            dataIndex: 'urlParam',
-            scopedSlots: {customRender: 'dataContent'}
-          },
-          {
-            title: 'body参数',
-            align: "center",
-            dataIndex: 'bodyParam',
-            scopedSlots: {customRender: 'dataContent'}
-          },
-          {
-            title: 'header参数',
-            align: "center",
-            dataIndex: 'headerParam',
-            scopedSlots: {customRender: 'dataContent'}
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align: "center",
-            scopedSlots: {customRender: 'action'},
-          }
-        ],
-        url: {
-          list: "/ctop/kuaishouAppAccount/list",
-          delete: "/ctop/kuaishouAppAccount/delete",
-          deleteBatch: "/ctop/kuaishouAppAccount/deleteBatch",
-          exportXlsUrl: "ctop/kuaishouAppAccount/exportXls",
-          importExcelUrl: "ctop/kuaishouAppAccount/importExcel",
-        },
-      }
-    },
-    computed: {
-      importExcelUrl: function () {
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      }
-    },
-    methods: {}
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less'
+<template>
+  <a-card :bordered="false">
+
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="24">
+
+          <a-col :md="6" :sm="8">
+            <a-form-item label="请求地址">
+              <a-input placeholder="请输入请求地址" v-model="queryParam.url"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="请求路径">
+              <a-input placeholder="请输入请求路径" v-model="queryParam.path"></a-input>
+            </a-form-item>
+          </a-col>
+          <template>
+            <a-col :md="6" :sm="8">
+              <a-form-item label="令牌">
+                <a-input placeholder="请输入令牌" v-model="queryParam.token"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="8">
+              <a-form-item label="url参数">
+                <a-input placeholder="请输入url参数" v-model="queryParam.urlParam"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="8">
+              <a-form-item label="body参数">
+                <a-input placeholder="请输入body参数" v-model="queryParam.bodyParam"></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>
+            </span>
+          </a-col>
+
+        </a-row>
+      </a-form>
+    </div>
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        @change="handleTableChange">
+        <span slot="dataContent" slot-scope="text, record">
+          <j-ellipsis :value="text" :length="60"/>
+        </span>
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">编辑</a>
+
+          <a-divider type="vertical"/>
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
+            <a-menu slot="overlay">
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span>
+
+      </a-table>
+    </div>
+    <!-- table区域-end -->
+
+    <!-- 表单区域 -->
+    <kuaishouAppAccount-modal ref="modalForm" @ok="modalFormOk"></kuaishouAppAccount-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaishouAppAccountModal from './modules/KuaishouAppAccountModal'
+  import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+  import JEllipsis from "@/components/jeecg/JEllipsis";
+
+  export default {
+    name: "KuaishouAppAccountList",
+    mixins: [JeecgListMixin],
+    components: {
+      KuaishouAppAccountModal,
+      JEllipsis
+    },
+    data() {
+      return {
+        description: '快手APP账号表管理页面',
+        // 表头
+        columns: [
+          {
+            title: '请求地址',
+            align: "center",
+            dataIndex: 'url'
+          },
+          {
+            title: '请求路径',
+            align: "center",
+            dataIndex: 'path'
+          },
+          {
+            title: '令牌',
+            align: "center",
+            dataIndex: 'token',
+            scopedSlots: {customRender: 'dataContent'}
+          },
+          {
+            title: 'url参数',
+            align: "center",
+            dataIndex: 'urlParam',
+            scopedSlots: {customRender: 'dataContent'}
+          },
+          {
+            title: 'body参数',
+            align: "center",
+            dataIndex: 'bodyParam',
+            scopedSlots: {customRender: 'dataContent'}
+          },
+          {
+            title: 'header参数',
+            align: "center",
+            dataIndex: 'headerParam',
+            scopedSlots: {customRender: 'dataContent'}
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align: "center",
+            scopedSlots: {customRender: 'action'},
+          }
+        ],
+        url: {
+          list: "/ctop/kuaishouAppAccount/list",
+          delete: "/ctop/kuaishouAppAccount/delete",
+          deleteBatch: "/ctop/kuaishouAppAccount/deleteBatch",
+          exportXlsUrl: "ctop/kuaishouAppAccount/exportXls",
+          importExcelUrl: "ctop/kuaishouAppAccount/importExcel",
+        },
+      }
+    },
+    computed: {
+      importExcelUrl: function () {
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      }
+    },
+    methods: {}
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
 </style>

+ 232 - 264
src/views/system/QuartzJobList.vue

@@ -1,265 +1,233 @@
-<template>
-  <a-card :bordered="false">
-
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline">
-        <a-row :gutter="24">
-
-          <a-col :md="6" :sm="10">
-            <a-form-item label="任务类名">
-              <a-input placeholder="请输入任务类名" v-model="queryParam.jobClassName"></a-input>
-            </a-form-item>
-          </a-col>
-          <a-col :md="6" :sm="10">
-            <a-form-item label="任务状态">
-              <a-select style="width: 220px" v-model="queryParam.status" placeholder="请选择状态">
-                <a-select-option value="">全部</a-select-option>
-                <a-select-option value="0">正常</a-select-option>
-                <a-select-option value="-1">停止</a-select-option>
-              </a-select>
-            </a-form-item>
-          </a-col>
-
-          <a-col :md="6" :sm="10">
-            <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>
-            </span>
-          </a-col>
-
-        </a-row>
-      </a-form>
-    </div>
-
-    <!-- 操作按钮区域 -->
-    <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-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete"/>
-            删除
-          </a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作
-          <a-icon type="down"/>
-        </a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
-        selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-
-        <!-- 字符串超长截取省略号显示-->
-        <span slot="description" slot-scope="text">
-          <j-ellipsis :value="text" :length="25"/>
-        </span>
-
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="resumeJob(record)" v-if="record.status==-1">启动</a>
-          <a @click="pauseJob(record)" v-if="record.status==0">停止</a>
-
-          <a-divider type="vertical"/>
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
-            <a-menu slot="overlay">
-              <a-menu-item><a @click="handleEdit(record)">编辑</a></a-menu-item>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-        <!-- 状态渲染模板 -->
-        <template slot="customRenderStatus" slot-scope="status">
-          <a-tag v-if="status==0" color="green">已启动</a-tag>
-          <a-tag v-if="status==-1" color="orange">已暂停</a-tag>
-        </template>
-      </a-table>
-    </div>
-    <!-- table区域-end -->
-
-    <!-- 表单区域 -->
-    <quartzJob-modal ref="modalForm" @ok="modalFormOk"></quartzJob-modal>
-  </a-card>
-</template>
-
-<script>
-  import QuartzJobModal from './modules/QuartzJobModal'
-  import {getAction} from '@/api/manage'
-  import {JeecgListMixin} from '@/mixins/JeecgListMixin'
-  import JEllipsis from "@/components/jeecg/JEllipsis";
-
-  export default {
-    name: "QuartzJobList",
-    mixins: [JeecgListMixin],
-    components: {
-      QuartzJobModal,
-      JEllipsis
-    },
-    data() {
-      return {
-        description: '定时任务在线管理',
-        // 查询条件
-        queryParam: {},
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key: 'rowIndex',
-            width: 60,
-            align: "center",
-            customRender: function (t, r, index) {
-              return parseInt(index) + 1;
-            }
-          },
-          {
-            title: '任务类名',
-            align: "center",
-            dataIndex: 'jobClassName',
-            sorter: true,
-            /*            customRender:function (text) {
-                          return "*"+text.substring(9,text.length);
-                        }*/
-          },
-          {
-            title: 'cron表达式',
-            align: "center",
-            dataIndex: 'cronExpression'
-          },
-          {
-            title: '参数',
-            align: "center",
-            dataIndex: 'parameter'
-          },
-          {
-            title: '描述',
-            align: "center",
-            width: 300,
-            dataIndex: 'description',
-            scopedSlots: {customRender: 'description'},
-          },
-          {
-            title: '状态',
-            align: "center",
-            dataIndex: 'status',
-            scopedSlots: {customRender: 'customRenderStatus'},
-            filterMultiple: false,
-            filters: [
-              {text: '已启动', value: '0'},
-              {text: '已暂停', value: '-1'},
-            ]
-          },
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align: "center",
-            width: 180,
-            scopedSlots: {customRender: 'action'},
-          }
-        ],
-        url: {
-          list: "/sys/quartzJob/list",
-          delete: "/sys/quartzJob/delete",
-          deleteBatch: "/sys/quartzJob/deleteBatch",
-          pause: "/sys/quartzJob/pause",
-          resume: "/sys/quartzJob/resume",
-          exportXlsUrl: "sys/quartzJob/exportXls",
-          importExcelUrl: "sys/quartzJob/importExcel",
-        },
-      }
-    },
-    computed: {
-      importExcelUrl: function () {
-        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-      }
-    },
-
-    methods: {
-
-      //筛选需要重写handleTableChange
-      handleTableChange(pagination, filters, sorter) {
-        //分页、排序、筛选变化时触发
-        //TODO 筛选
-        if (Object.keys(sorter).length > 0) {
-          this.isorter.column = sorter.field;
-          this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
-        }
-        //这种筛选方式只支持单选
-        this.filters.status = filters.status[0];
-        this.ipagination = pagination;
-        this.loadData();
-      },
-      pauseJob: function (record) {
-        var that = this;
-        //暂停定时任务
-        this.$confirm({
-          title: "确认暂停",
-          content: "是否暂停选中任务?",
-          onOk: function () {
-            getAction(that.url.pause, {jobClassName: record.jobClassName}).then((res) => {
-              if (res.success) {
-                that.$message.success(res.message);
-                that.loadData();
-                that.onClearSelected();
-              } else {
-                that.$message.warning(res.message);
-              }
-            });
-          }
-        });
-
-      },
-      resumeJob: function (record) {
-        var that = this;
-        //恢复定时任务
-        this.$confirm({
-          title: "确认启动",
-          content: "是否启动选中任务?",
-          onOk: function () {
-            getAction(that.url.resume, {jobClassName: record.jobClassName}).then((res) => {
-              if (res.success) {
-                that.$message.success(res.message);
-                that.loadData();
-                that.onClearSelected();
-              } else {
-                that.$message.warning(res.message);
-              }
-            });
-          }
-        });
-      },
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less'
+<template>
+  <a-card :bordered="false">
+
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="24">
+
+          <a-col :md="6" :sm="10">
+            <a-form-item label="任务类名">
+              <a-input placeholder="请输入任务类名" v-model="queryParam.jobClassName"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="10">
+            <a-form-item label="任务状态">
+              <a-select style="width: 220px" v-model="queryParam.status" placeholder="请选择状态">
+                <a-select-option value="">全部</a-select-option>
+                <a-select-option value="0">正常</a-select-option>
+                <a-select-option value="-1">停止</a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+
+          <a-col :md="6" :sm="10">
+            <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>
+            </span>
+          </a-col>
+
+        </a-row>
+      </a-form>
+    </div>
+
+    <!-- 操作按钮区域 -->
+    <div class="table-operator">
+      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
+    </div>
+
+    <!-- table区域-begin -->
+    <div>
+
+      <a-table
+        ref="table"
+        size="middle"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        @change="handleTableChange">
+
+        <!-- 字符串超长截取省略号显示-->
+        <span slot="description" slot-scope="text">
+          <j-ellipsis :value="text" :length="25"/>
+        </span>
+
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="resumeJob(record)" v-if="record.status==-1">启动</a>
+          <a @click="pauseJob(record)" v-if="record.status==0">停止</a>
+
+          <a-divider type="vertical"/>
+          <a-dropdown>
+            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
+            <a-menu slot="overlay">
+              <a-menu-item><a @click="handleEdit(record)">编辑</a></a-menu-item>
+              <a-menu-item>
+                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                  <a>删除</a>
+                </a-popconfirm>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </span>
+
+        <!-- 状态渲染模板 -->
+        <template slot="customRenderStatus" slot-scope="status">
+          <a-tag v-if="status==0" color="green">已启动</a-tag>
+          <a-tag v-if="status==-1" color="orange">已暂停</a-tag>
+        </template>
+      </a-table>
+    </div>
+    <!-- table区域-end -->
+
+    <!-- 表单区域 -->
+    <quartzJob-modal ref="modalForm" @ok="modalFormOk"></quartzJob-modal>
+  </a-card>
+</template>
+
+<script>
+  import QuartzJobModal from './modules/QuartzJobModal'
+  import {getAction} from '@/api/manage'
+  import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+  import JEllipsis from "@/components/jeecg/JEllipsis";
+
+  export default {
+    name: "QuartzJobList",
+    mixins: [JeecgListMixin],
+    components: {
+      QuartzJobModal,
+      JEllipsis
+    },
+    data() {
+      return {
+        description: '定时任务在线管理',
+        // 查询条件
+        queryParam: {},
+        // 表头
+        columns: [
+          {
+            title: '任务类名',
+            align: "center",
+            dataIndex: 'jobClassName',
+            sorter: true,
+            /*            customRender:function (text) {
+                          return "*"+text.substring(9,text.length);
+                        }*/
+          },
+          {
+            title: 'cron表达式',
+            align: "center",
+            dataIndex: 'cronExpression'
+          },
+          {
+            title: '参数',
+            align: "center",
+            dataIndex: 'parameter'
+          },
+          {
+            title: '描述',
+            align: "center",
+            width: 300,
+            dataIndex: 'description',
+            scopedSlots: {customRender: 'description'},
+          },
+          {
+            title: '状态',
+            align: "center",
+            dataIndex: 'status',
+            scopedSlots: {customRender: 'customRenderStatus'},
+            filterMultiple: false,
+            filters: [
+              {text: '已启动', value: '0'},
+              {text: '已暂停', value: '-1'},
+            ]
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align: "center",
+            width: 180,
+            scopedSlots: {customRender: 'action'},
+          }
+        ],
+        url: {
+          list: "/sys/quartzJob/list",
+          delete: "/sys/quartzJob/delete",
+          deleteBatch: "/sys/quartzJob/deleteBatch",
+          pause: "/sys/quartzJob/pause",
+          resume: "/sys/quartzJob/resume",
+          exportXlsUrl: "sys/quartzJob/exportXls",
+          importExcelUrl: "sys/quartzJob/importExcel",
+        },
+      }
+    },
+    computed: {
+      importExcelUrl: function () {
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      }
+    },
+
+    methods: {
+
+      //筛选需要重写handleTableChange
+      handleTableChange(pagination, filters, sorter) {
+        //分页、排序、筛选变化时触发
+        //TODO 筛选
+        console.log(filters)
+        if (Object.keys(sorter).length > 0) {
+          this.isorter.column = sorter.field;
+          this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
+        }
+        //这种筛选方式只支持单选
+        this.ipagination = pagination;
+        this.loadData();
+      },
+      pauseJob: function (record) {
+        var that = this;
+        //暂停定时任务
+        this.$confirm({
+          title: "确认暂停",
+          content: "是否暂停选中任务?",
+          onOk: function () {
+            getAction(that.url.pause, {jobClassName: record.jobClassName}).then((res) => {
+              if (res.success) {
+                that.$message.success(res.message);
+                that.loadData();
+                that.onClearSelected();
+              } else {
+                that.$message.warning(res.message);
+              }
+            });
+          }
+        });
+
+      },
+      resumeJob: function (record) {
+        var that = this;
+        //恢复定时任务
+        this.$confirm({
+          title: "确认启动",
+          content: "是否启动选中任务?",
+          onOk: function () {
+            getAction(that.url.resume, {jobClassName: record.jobClassName}).then((res) => {
+              if (res.success) {
+                that.$message.success(res.message);
+                that.loadData();
+                that.onClearSelected();
+              } else {
+                that.$message.warning(res.message);
+              }
+            });
+          }
+        });
+      },
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
 </style>