Kaynağa Gözat

资料管理相关提交

liuhy 4 yıl önce
ebeveyn
işleme
4eaa3c1628

+ 53 - 0
src/views/dataupload/DataMain.vue

@@ -0,0 +1,53 @@
+<template>
+  <!-- 列表页 -->
+  <TaskList v-if="showType === 'list'"
+                    @goAdd="showAdd"
+                    @goImport="showImport"/>
+  <!-- 添加页 -->
+  <TaskAdd v-else-if="showType === 'add'"
+            @goList="showList"   />
+  <!-- 导入页 -->
+  <TaskImport v-else-if="showType === 'import'"
+            @goList="showList" :userNo="userNo" />
+</template>
+
+<script>
+
+  import TaskList from './modules/TaskList'
+  import TaskAdd from './modules/TaskAdd'
+  import TaskImport from './modules/TaskImport'
+
+  export default {
+    name: 'TaskMain',
+    components: {
+      TaskList,
+      TaskAdd,
+      TaskImport,
+    },
+    data () {
+      return {
+        description: '稽核任务管理主页面',
+        showType: 'list',
+      }
+    },
+    methods: {
+      // 显示列表页面
+      showList() {
+        this.showType = 'list'
+      },
+      // 显示添加页面
+      showAdd() {
+        this.showType = 'add'
+      },
+      // 显示导入页面
+      showImport(param) {
+        this.showType = 'import'
+        this.userNo = param
+      },
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 249 - 0
src/views/dataupload/SmsCheckTaskList.vue

@@ -0,0 +1,249 @@
+<template>
+
+  <a-card :bordered="false">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="任务名称">
+              <j-input placeholder="请输入任务名称" v-model="queryParam.taskName"></j-input>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="任务状态">
+              <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.taskState" dictCode="sms_check_task_state"/>
+            </a-form-item>
+          </a-col>
+          <template v-if="toggleSearchStatus">
+            <a-col :xl="10" :lg="11" :md="12" :sm="24">
+              <a-form-item label="开始时间">
+                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.taskStartTime_begin"></j-date>
+                <span class="query-group-split-cust"></span>
+                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.taskStartTime_end"></j-date>
+              </a-form-item>
+            </a-col>
+            <a-col :xl="10" :lg="11" :md="12" :sm="24">
+              <a-form-item label="结束时间">
+                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.taskEndTime_begin"></j-date>
+                <span class="query-group-split-cust"></span>
+                <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.taskEndTime_end"></j-date>
+              </a-form-item>
+            </a-col>
+          </template>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <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>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <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>
+      <!-- 高级查询区域 -->
+      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
+      <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"
+        :scroll="{x:true}"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <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 @click="handleDetail(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>
+
+      </a-table>
+    </div>
+
+    <sms-check-task-modal ref="modalForm" @ok="modalFormOk"></sms-check-task-modal>
+  </a-card>
+
+</template>
+
+<script>
+
+  import '@/assets/less/TableExpand.less'
+  import { mixinDevice } from '@/utils/mixin'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import SmsCheckTaskModal from './modules/SmsCheckTaskModal'
+  import HeadInfo from '@/components/tools/HeadInfo'
+  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
+
+  export default {
+    name: 'SmsCheckTaskList',
+    mixins:[JeecgListMixin, mixinDevice],
+    components: {
+      SmsCheckTaskModal,
+      HeadInfo,
+    },
+    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: 'taskName'
+          },
+          {
+            title:'任务状态',
+            align:"center",
+            dataIndex: 'taskState_dictText'
+          },
+          {
+            title:'任务开始时间',
+            align:"center",
+            dataIndex: 'taskStartTime'
+          },
+          {
+            title:'任务结束时间',
+            align:"center",
+            dataIndex: 'taskEndTime'
+          },
+          {
+            title:'描述',
+            align:"center",
+            dataIndex: 'description'
+          },
+          {
+            title:'客户总数',
+            align:"center",
+            dataIndex: 'customerCount'
+          },
+          {
+            title:'待稽核数',
+            align:"center",
+            dataIndex: 'checkCount'
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            fixed:"right",
+            width:147,
+            scopedSlots: { customRender: 'action' }
+          }
+        ],
+        url: {
+          list: "/smsCheck/task/list",
+          delete: "/smsCheck/task/delete",
+          deleteBatch: "/smsCheck/task/deleteBatch",
+          exportXlsUrl: "/smsCheck/task/exportXls",
+          importExcelUrl: "smsCheck/task/importExcel",
+        },
+        dictOptions:{},
+        superFieldList:[],
+      }
+    },
+    created() {
+    this.getSuperFieldList();
+    },
+    computed: {
+      importExcelUrl: function(){
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      },
+    },
+    methods: {
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'taskName',text:'任务名称',dictCode:''})
+        fieldList.push({type:'string',value:'taskState',text:'任务状态',dictCode:'sms_check_task_state'})
+        fieldList.push({type:'datetime',value:'taskStartTime',text:'任务开始时间'})
+        fieldList.push({type:'datetime',value:'taskEndTime',text:'任务结束时间'})
+        fieldList.push({type:'string',value:'description',text:'描述',dictCode:''})
+        fieldList.push({type:'string',value:'fileUrl',text:'文件路径',dictCode:''})
+        fieldList.push({type:'string',value:'customerCount',text:'客户总数',dictCode:''})
+        fieldList.push({type:'string',value:'checkCount',text:'稽核数',dictCode:''})
+        this.superFieldList = fieldList
+      }
+    }
+  }
+</script>
+<style lang="less" scoped>
+  @import '~@assets/less/common.less';
+
+</style>

+ 0 - 0
src/views/smscheck/modules/HeadCard.vue → src/views/dataupload/modules/HeadCard.vue


+ 173 - 0
src/views/dataupload/modules/SmsCheckTaskForm.vue

@@ -0,0 +1,173 @@
+<template>
+  <a-spin :spinning="confirmLoading">
+    <j-form-container :disabled="formDisabled">
+      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+        <a-row>
+          <a-col :span="24">
+            <a-form-model-item label="任务名称" prop="taskName" v-bind="labelCol1">
+              <a-input v-model="model.taskName" placeholder="请输入任务名称"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+<!--          <a-col :span="12">-->
+<!--            <a-form-model-item label="任务状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskState">-->
+<!--              <j-dict-select-tag type="list" v-model="model.taskState" dictCode="sms_check_task_state" placeholder="请选择任务状态" />-->
+<!--            </a-form-model-item>-->
+<!--          </a-col>-->
+          <a-col :span="12">
+            <a-form-model-item label="开始时间" prop="taskStartTime" v-bind="labelCol2">
+              <j-date placeholder="请选择任务开始时间"  v-model="model.taskStartTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="结束时间" prop="taskEndTime" v-bind="labelCol2">
+              <j-date placeholder="请选择任务结束时间"  v-model="model.taskEndTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="描述" prop="description" v-bind="labelCol1">
+              <a-textarea v-model="model.description" rows="4" placeholder="请输入描述" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="24">
+            <a-form-model-item label="文件路径" prop="fileUrl" v-bind="labelCol1">
+              <j-upload v-model="model.fileUrl"   ></j-upload>
+            </a-form-model-item>
+          </a-col>
+<!--          <a-col :span="12">-->
+<!--            <a-form-model-item label="客户总数" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="customerCount">-->
+<!--              <a-input v-model="model.customerCount" placeholder="请输入客户总数"  ></a-input>-->
+<!--            </a-form-model-item>-->
+<!--          </a-col>-->
+<!--          <a-col :span="12">-->
+<!--            <a-form-model-item label="稽核数" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="checkCount">-->
+<!--              <a-input v-model="model.checkCount" placeholder="请输入稽核数"  ></a-input>-->
+<!--            </a-form-model-item>-->
+<!--          </a-col>-->
+        </a-row>
+      </a-form-model>
+    </j-form-container>
+  </a-spin>
+</template>
+
+<script>
+
+  import { httpAction, getAction } from '@/api/manage'
+  import { validateDuplicateValue } from '@/utils/util'
+
+  export default {
+    name: 'SmsCheckTaskForm',
+    components: {
+    },
+    props: {
+      //表单禁用
+      disabled: {
+        type: Boolean,
+        default: false,
+        required: false
+      }
+    },
+    data () {
+      return {
+        model:{
+         },
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+        // 1列
+        labelCol1 : {
+          labelCol: {
+            xs: { span: 24 },
+            sm: { span: 2 },
+          },
+          wrapperCol: {
+            xs: { span: 24 },
+            sm: { span: 21 },
+          }
+        },
+        // 2列
+        labelCol2 : {
+          labelCol: {
+            xs: { span: 24 },
+            sm: { span: 4 },
+          },
+          wrapperCol: {
+            xs: { span: 24 },
+            sm: { span: 18 },
+          }
+        },
+        confirmLoading: false,
+        validatorRules: {
+           taskName: [
+              { required: true, message: '请输入任务名称!'},
+           ],
+           taskStartTime: [
+              { required: true, message: '请输入任务开始时间!'},
+           ],
+           taskEndTime: [
+              { required: true, message: '请输入任务结束时间!'},
+           ],
+           fileUrl: [
+              { required: true, message: '请输入文件路径!'},
+           ],
+        },
+        url: {
+          add: "/smsCheck/task//add",
+          edit: "/smsCheck/task//edit",
+          queryById: "/smsCheck/task//queryById"
+        }
+      }
+    },
+    computed: {
+      formDisabled(){
+        return this.disabled
+      },
+    },
+    created () {
+       //备份model原始值
+      this.modelDefault = JSON.parse(JSON.stringify(this.model));
+    },
+    methods: {
+      add () {
+        this.edit(this.modelDefault);
+      },
+      edit (record) {
+        this.model = Object.assign({}, record);
+        this.visible = true;
+      },
+      submitForm () {
+        const that = this;
+        // 触发表单验证
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = true;
+            let httpurl = '';
+            let method = '';
+            if(!this.model.id){
+              httpurl+=this.url.add;
+              method = 'post';
+            }else{
+              httpurl+=this.url.edit;
+               method = 'put';
+            }
+            httpAction(httpurl,this.model,method).then((res)=>{
+              if(res.success){
+                that.$message.success(res.message);
+                that.$emit('ok');
+              }else{
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+            })
+          }
+
+        })
+      },
+    }
+  }
+</script>

+ 60 - 0
src/views/dataupload/modules/SmsCheckTaskModal.vue

@@ -0,0 +1,60 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+    @cancel="handleCancel"
+    cancelText="关闭">
+    <sms-check-task-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></sms-check-task-form>
+  </j-modal>
+</template>
+
+<script>
+
+  import SmsCheckTaskForm from './SmsCheckTaskForm'
+  export default {
+    name: 'SmsCheckTaskModal',
+    components: {
+      SmsCheckTaskForm
+    },
+    data () {
+      return {
+        title: '',
+        width: 960,
+        visible: false,
+        disableSubmit: false
+      }
+    },
+    methods: {
+      add () {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.add();
+        })
+      },
+      edit (record) {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.edit(record);
+        })
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleOk () {
+        this.$refs.realForm.submitForm();
+      },
+      submitCallback(){
+        this.$emit('ok');
+        this.visible = false;
+      },
+      handleCancel () {
+        this.close()
+      }
+    }
+  }
+</script>

+ 408 - 0
src/views/dataupload/modules/TaskAdd.vue

@@ -0,0 +1,408 @@
+<template>
+
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+    @cancel="handleCancel"
+    cancelText="关闭">
+    <a-spin :spinning="confirmLoading">
+      <j-form-container :disabled="formDisabled">
+        <a-form-model  ref="form" :model="model" :rules="validatorRules" slot="detail">
+          <a-row>
+            <a-col :span="24">
+              <a-divider content-position="left">客户基本情况内容填写</a-divider>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="客户编号" prop="customerNo" v-bind="labelCol2">
+                <a-input v-model="model.customerNo" placeholder="请输入客户编号"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="用户编号" prop="userNo" v-bind="labelCol2">
+                <a-input v-model="model.userNo" placeholder="请输入用户编号"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="客户名称" prop="customerName" v-bind="labelCol2">
+                <a-input v-model="model.customerName" placeholder="请输入客户名称"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="服务号码" prop="smsNumber" v-bind="labelCol2">
+                <a-input v-model="model.smsNumber" placeholder="请输入服务号码"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+
+            <a-col :span="12">
+              <a-form-model-item label="入网时间" prop="networkAccessTime" v-bind="labelCol2">
+                <j-date placeholder="请选择入网时间"  v-model="model.networkAccessTime" :show-time="true" date-format="YYYY-MM-DD" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="用户状态" prop="userState" v-bind="labelCol2">
+                <a-input v-model="model.userState" placeholder="请输入用户状态"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="24">
+              <a-form-model-item label="二级部门" prop="staffDeptLevel2" v-bind="labelCol1">
+                <a-input v-model="model.staffDeptLevel2" placeholder="请输入用户发展二级部门"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="24">
+              <a-form-model-item label="三级部门" prop="staffDeptLevel3" v-bind="labelCol1">
+                <a-input v-model="model.staffDeptLevel3" placeholder="请输入用户发展三级部门"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="24">
+              <a-divider content-position="left">业务基本情况内容填写</a-divider>
+            </a-col>
+
+
+
+            <a-col :span="12">
+              <a-form-model-item label="开通状态" prop="userOpenState" v-bind="labelCol2">
+                <a-select v-model="userOpenStateModel" placeholder="请选择" :options="userOpenState"/>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="码号" prop="smsNumberPrefix" v-bind="labelCol2">
+                <a-input placeholder="接入开通码号"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="客户经理" prop="accountManager" v-bind="labelCol2">
+                <a-input placeholder="请输入客户经理"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="客户经理手机号" prop="accountManagerPhone" v-bind="labelCol2">
+                <a-input  placeholder="请输入客户经理手机号"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="码号使用单位联系人" prop="customerContacts" v-bind="labelCol2">
+                <a-input placeholder="请输入业务合同码号使用单位联系人姓名"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="码号使用单位联系人手机号" prop="customerContacts" v-bind="labelCol2">
+                <a-input placeholder="请输入业务合同码号使用单位联系人手机号"  ></a-input>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="24">
+              <a-form-model-item label="号码用途" prop="smsNumberUsage" v-bind="labelCol1">
+                <a-input type="textarea"   maxlength="200" show-word-limit rows="4" placeholder="参考码号接入合同中的用途描述,最大200字。" />
+              </a-form-model-item>
+            </a-col>
+
+
+            <a-col :span="24">
+              <a-divider content-position="left">业务规范性内容填写</a-divider>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="合同到期时间" prop="customerContacts" v-bind="labelCol2">
+                <j-date placeholder="请选择合同到期时间"  :show-time="true" date-format="YYYY-MM-DD" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="码号证书到期时间" prop="smsNumberCertificateExpireTime" v-bind="labelCol2">
+                <j-date placeholder="请选择码号证书到期时间"  :show-time="true" date-format="YYYY-MM-DD" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="备案通知到期时间" prop="recordNoticeExpireTime" v-bind="labelCol2">
+                <j-date placeholder="请选择码备案通知到期时间"  :show-time="true" date-format="YYYY-MM-DD" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+
+
+            <a-col :span="12">
+              <a-form-model-item label="增值业务许可证到期时间" prop="valueAddedLicenceExpireTime" v-bind="labelCol2">
+                <j-date placeholder="请选择增值业务许可证到期时间"  :show-time="true" date-format="YYYY-MM-DD" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="24">
+              <a-form-model-item label="营业执照到期时间" prop="businessLicenceExpireTime" v-bind="labelCol1">
+                <j-date placeholder="请选择营业执照到期时间"  :show-time="true" date-format="YYYY-MM-DD" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="24">
+              <a-form-model-item label="合同签署主体与实际开通客户是否一致" prop="userOpenState" v-bind="labelCol1">
+                <a-select v-model="contractOpenCustomerSameModel" placeholder="请选择" :options="contractOpenCustomerSameState"/>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="24">
+              <a-form-model-item label="是否有集团价格审批" prop="groupPriceApproval" v-bind="labelCol1">
+                <a-select v-model="groupPriceApprovalModel" placeholder="请选择" :options="groupPriceApprovalState"/>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="资料是否完整" prop="dataComplete" v-bind="labelCol1">
+                <a-select v-model="dataCompleteModel" placeholder="请选择" :options="dataCompleteState"/>
+              </a-form-model-item>
+            </a-col>
+
+            <a-col :span="12">
+              <a-form-model-item label="是否完成整改" prop="rectifyReformOver" v-bind="labelCol1">
+                <a-select v-model="rectifyReformOverModel" placeholder="请选择" :options="rectifyReformOverState"/>
+              </a-form-model-item>
+            </a-col>
+<!--            <a-col :span="12">
+              <a-form-model-item label="开始时间" prop="taskStartTime" v-bind="labelCol2">
+                <j-date placeholder="请选择任务开始时间"  v-model="model.taskStartTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-model-item label="结束时间" prop="taskEndTime" v-bind="labelCol2">
+                <j-date placeholder="请选择任务结束时间"  v-model="model.taskEndTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
+              </a-form-model-item>
+            </a-col>
+            <a-col :span="24">
+              <a-form-model-item label="描述" prop="description" v-bind="labelCol1">
+                <a-textarea v-model="model.description" rows="4" placeholder="请输入描述" />
+              </a-form-model-item>
+            </a-col>-->
+
+          </a-row>
+        </a-form-model>
+      </j-form-container>
+    </a-spin>
+
+  </j-modal>
+
+</template>
+
+<script>
+
+import { httpAction } from '@api/manage'
+
+export default {
+  name: 'TaskAdd',
+  data () {
+    return {
+      description: '添加页面',
+      title: '',
+      width: 1000,
+      visible: false,
+      disableSubmit: false,
+      model:{
+      },
+      // 1列
+      labelCol1 : {
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 2 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 21 },
+        }
+      },
+      // 2列
+      labelCol2 : {
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 4 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 18 },
+        }
+      },
+      confirmLoading: false,
+      validatorRules: {
+        customerNo: [
+          { required: true, message: '请输入客户编号!'},
+        ],
+        userNo: [
+          { required: true, message: '请输入用户编号!'},
+        ],
+        customerName: [
+          { required: true, message: '请输入客户名称!'},
+        ],
+        networkAccessTime: [
+          { required: true, message: '请输入服务号码!'},
+        ],
+        userState: [
+          { required: true, message: '请输入用户状态!'},
+        ],
+        staffDeptLevel2: [
+          { required: true, message: '请输入用户发展二级部门!'},
+        ],
+        staffDeptLevel3: [
+          { required: true, message: '请输入用户发展三级部门!'},
+        ],
+      },
+      url: {
+        add: "/smsCheck/customerInfo/staff/add",
+        edit: "/smsCheck/task/edit",
+        queryById: "/smsCheck/task/queryById"
+      },
+      userOpenStateModel: '开通',
+      contractOpenCustomerSameModel:'是',
+      groupPriceApprovalModel:'是',
+      dataCompleteModel:'否',
+      rectifyReformOverModel:"无"
+    }
+  },
+  computed: {
+    formDisabled(){
+      return this.disabled
+    },
+    userOpenState() {
+      return [
+        {
+          value: '开通',
+          label: '开通'
+        },
+        {
+          value: '拆机',
+          label: '拆机'
+        }
+      ]
+    },
+    contractOpenCustomerSameState(){
+
+      return[
+        {
+          value: '是',
+          label: '是'
+        },
+
+        {
+          value: '否',
+          label: '否'
+        }
+
+      ]
+    },
+
+    groupPriceApprovalState(){
+      return[
+        {
+          value: '是',
+          label: '是'
+        },
+        {
+          value: '否',
+          label: '否'
+        }
+
+      ]
+    },
+    dataCompleteState(){
+      return[
+        {
+          value: '否',
+          label: '否'
+        },
+        {
+          value: '是',
+          label: '是'
+        },
+      ]
+    },
+    rectifyReformOverState(){
+      return[
+        {
+          value: '',
+          label: '无'
+        },
+        {
+          value: '是',
+          label: '是'
+        },
+        {
+          value: '否',
+          label: '否'
+        }
+
+
+      ]
+    }
+
+
+  },
+  created () {
+    //备份model原始值
+    this.modelDefault = JSON.parse(JSON.stringify(this.model));
+  },
+  methods: {
+    handleOk () {
+      this.submitForm();
+    },
+    handleCancel () {
+      this.visible = false;
+    },
+    add () {
+      this.edit(this.modelDefault);
+    },
+    edit (record) {
+      this.model = Object.assign({}, record);
+      this.visible = true;
+    },
+    submitForm () {
+      const that = this;
+      // 触发表单验证
+      this.$refs.form.validate(valid => {
+        // 验证通过
+        if (valid) {
+          that.confirmLoading = true;
+          let httpUrl = '';
+          let method = '';
+          if (!this.model.id) {
+            httpUrl += this.url.add;
+            method = 'post';
+          } else {
+            httpUrl += this.url.edit;
+            method = 'put';
+          }
+          // 发送请求
+          httpAction(httpUrl, this.model, method)
+            .then((res) => {
+              if(res.success){
+                that.$message.success(res.message);
+                that.$emit('ok');
+                that.visible = false;
+              }else{
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+            })
+        }
+      })
+    },
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 395 - 0
src/views/dataupload/modules/TaskImport.vue

@@ -0,0 +1,395 @@
+<template>
+
+  <div>
+    <a-card :bordered="false">
+      <h1>
+        <span style="font-size: 14px;">资料管理 / 资料上传</span>
+      </h1>
+      <div>
+        <a-button type="primary" @click="showList">返回</a-button>
+      </div>
+    </a-card>
+
+    <div style="background-color: #ececec; padding: 20px">
+      <a-row :gutter="16">
+        <a-col :span="6">
+          <a-spin :spinning="spinning">
+            <a-card title="资料类型选择" :bordered="false">
+              <div class="table-operator">
+                <a-upload
+                  name="file"
+                  :multiple="false"
+                  :action="importMinioUploadAction"
+                  :headers="tokenHeader"
+                  :showUploadList="false"
+                  :beforeUpload="importBeforeUpload"
+                  @change="importHandleChange">
+                  <a-button>
+                    <a-icon type="upload"/>
+                    客户资料上传
+                  </a-button>
+                </a-upload>
+              </div>
+              <a-radio-group v-model:value="value1" button-style="solid" style="width: 250px" @change="fileTypeClick">
+                <a-radio-button style="display: flex" value="businessContract">业务合同</a-radio-button>
+                <a-radio-button style="display: flex" value="smsNumberCertificate">号码证书</a-radio-button>
+                <a-radio-button style="display: flex" value="recordNotice">备案通知</a-radio-button>
+                <a-radio-button style="display: flex" value="groupPriceApproval">集团政企价格审批单</a-radio-button>
+                <a-radio-button style="display: flex" value="businessLicence">营业执照</a-radio-button>
+                <a-radio-button style="display: flex" value="customerIntroductionLetter">集团政企价格审批单</a-radio-button>
+                <a-radio-button style="display: flex" value="handlerIdNumberCopy">经办人身份复印件</a-radio-button>
+                <a-radio-button style="display: flex" value="crmScreenshot">CRM 行短业务截图</a-radio-button>
+                <a-radio-button style="display: flex" value="valueAddedLicence">增值业务许可证</a-radio-button>
+              </a-radio-group>
+            </a-card>
+          </a-spin>
+
+        </a-col>
+        <a-col :span="18">
+          <a-card title="资料详情" :bordered="false">
+            <a-list item-layout="horizontal" :data-source="delList">
+              <a-list-item slot="renderItem" slot-scope="item, index">
+                <a-list-item-meta
+                  :description=item.information
+                >
+                  <a slot="title" :href= item.href >{{ item.title }}</a>
+                  <a-avatar
+                    slot="avatar"
+                    :src=item.href
+                  />
+
+                </a-list-item-meta>
+              </a-list-item>
+            </a-list>
+          </a-card>
+        </a-col>
+      </a-row>
+    </div>
+
+    <a-card :bordered="true" style="margin-top: 12px;">
+
+
+      <!-- 操作按钮区域 start -->
+      <!--      <div class="table-operator">
+              <a-upload name="file"
+                        :showUploadList="false"
+                        :multiple="false"
+                        :headers="tokenHeader"
+                        :action="url.importExcel"
+                        @change="uploadChange">
+                <a-button type="primary" icon="upload">客户资料导入</a-button>
+              </a-upload>
+              <a-button type="primary" icon="import"
+                        @click="importInfo">确定导入</a-button>
+            </div>-->
+      <!-- 操作按钮区域 end -->
+
+      <!-- table区域 begin -->
+      <!--      <div>
+              <a-table
+                ref="table"
+                size="middle"
+                :scroll="{x:true}"
+                bordered
+
+                :columns="columns"
+                :dataSource="dataSource"
+                :pagination="false"
+                :loading="loading"
+                class="j-table-force-nowrap"
+                @change="handleTableChange">
+
+              </a-table>
+            </div>-->
+      <!-- table区域 end -->
+
+    </a-card>
+
+  </div>
+
+</template>
+
+<script>
+
+import {JeecgListMixin} from '@/mixins/JeecgListMixin'
+import {httpAction} from '@api/manage'
+let Base64 = require('js-base64').Base64
+
+
+export default {
+  name: 'TaskImport',
+  mixins: [JeecgListMixin],
+  props: {
+    userNo: {
+      //type: string,
+      require: true
+    }
+  },
+  setup(){
+
+  },
+  data() {
+    return {
+      spinning: false,
+      value1: "businessContract",
+      expandedKeys: ['0-0', '0-1'],
+      selectedKeys: ['0-0'],
+      description: '导入页面',
+      autoSearch: false,
+      dataSource: [],
+      errorCount: 0,
+      // 表头
+      columns: [
+        {
+          title: '#',
+          dataIndex: '',
+          key: 'rowIndex',
+          width: 60,
+          align: "center",
+          customRender: function (t, r, index) {
+            return parseInt(index) + 1;
+          }
+        },
+        {
+          title: '客户编号',
+          align: "center",
+          dataIndex: 'customerNo'
+        },
+        {
+          title: '客户名称',
+          align: "center",
+          dataIndex: 'customerName'
+        },
+        {
+          title: '服务号码',
+          align: "center",
+          dataIndex: 'smsNumber'
+        },
+        {
+          title: '用户编号',
+          align: "center",
+          dataIndex: 'userNo'
+        },
+        {
+          title: '入网时间',
+          align: "center",
+          dataIndex: 'networkAccessTime'
+        },
+        {
+          title: '用户状态',
+          align: "center",
+          dataIndex: 'userState'
+        },
+        {
+          title: '用户发展员工',
+          align: "center",
+          dataIndex: 'staffInfo'
+        },
+        {
+          title: '员工姓名',
+          align: "center",
+          dataIndex: 'staffName'
+        },
+        {
+          title: '员工编号',
+          align: "center",
+          dataIndex: 'staffNo'
+        },
+        {
+          title: '用户发展二级部门',
+          align: "center",
+          dataIndex: 'staffDeptLevel2'
+        },
+        {
+          title: '用户发展三级部门',
+          align: "center",
+          dataIndex: 'staffDeptLevel3'
+        },
+
+      ],
+      url: {
+        importExcel: window._CONFIG['domainURL'] + "/smsCheck/task/importCustomerExcel",
+        importData: "/smsCheck/task/importCustomerData",
+        minioUpload: "/smsCheck/customerData/uploadMinio",
+        editUrl: "/smsCheck/customerData/edit/user/no",
+        list:"/smsCheck/customerData/list"
+      },
+      delList: [],
+    }
+  },
+
+  created() {
+      this.customerDataList();
+  },
+
+  methods: {
+
+    customerDataList() {
+      let model  = {
+        "userNo" : this.userNo
+      }
+      httpAction(this.url.list, model, "post")
+        .then((res) => {
+          if (res.success) {
+            let records = res.result.records;
+            if (records.length > 0){
+              this.delList = [];
+              let record = records[0];
+              let recordElement = record[this.value1];
+              if (recordElement != null || recordElement != undefined){
+                let splitList = recordElement.split(",");
+                for (var i in splitList){
+                  let splitListElement = splitList[i];
+                  let split = splitListElement.split("/");
+                  let splitElement = split[split.length-1];
+
+                  let del = {
+                    title:splitElement,
+                    href:window._CONFIG['onlinePreviewDomainURL'] + '?url=' + encodeURIComponent(Base64.encode((splitListElement))),
+                    information:"上传用户:"+record.createBy + " 上传日期:"+record.createTime,
+                  }
+                  this.delList.push(del)
+                }
+              }else {
+                this.delList = [];
+              }
+            }else {
+              this.delList = [];
+            }
+
+          } else {
+
+          }
+        }).finally(() => {
+
+      })
+    },
+
+    importBeforeUpload(file) {
+      var fileType = file.type;
+      if (fileType === 'image') {
+        if (fileType.indexOf('image') < 0) {
+          this.$message.warning('请上传图片');
+          return false;
+        }
+      } else if (fileType === 'file') {
+        if (fileType.indexOf('image') >= 0) {
+          this.$message.warning('请上传文件');
+          return false;
+        }
+      }
+
+
+      return true
+    },
+    importHandleChange(info) {
+      this.spinning = true;
+      info.file
+      if (info.file.status === 'done') {
+        if (info.file.response.success) {
+          //this.loadData()
+          this.spinning = false;
+          this.$message.success(`${info.file.name} 上传成功!`);
+          let fileUrl = info.file.response.message;
+          let value1 = this.value1;
+          let model = {
+            "userNo": this.userNo,
+            //value1:fileUrl
+          }
+          model[value1] = fileUrl
+          httpAction(this.url.editUrl, model, "post")
+            .then((res) => {
+              if (res.success) {
+                this.customerDataList();
+              } else {
+              }
+            }).finally(() => {
+
+          })
+
+        } else {
+          this.spinning = false;
+          this.$message.error(`${info.file.response.message}`);
+        }
+      } else if (info.file.status === 'error') {
+        this.spinning = false;
+        this.$message.error(`${info.file.response.message}`);
+      }
+    },
+
+
+    fileTypeClick(a, event) {
+      console.log(this.value1)
+      //console.log(a)
+      //console.log(event)
+      this.customerDataList();
+    },
+    radioStyle() {
+      return {
+        display: 'flex',
+        height: '30px',
+        lineHeight: '30px'
+      }
+    },
+    renderContent(h, {node, data, store}) {
+      return (
+        <span class="custom-tree-node">
+            <span>{node.label}</span>
+            <span>
+              <el-button size="mini" type="text" on-click={() => this.append(data)}>Append</el-button>
+              <el-button size="mini" type="text" on-click={() => this.remove(node, data)}>Delete</el-button>
+            </span>
+          </span>);
+    }
+    ,
+
+
+    // 显示列表页面
+    showList() {
+      this.$emit('goList', true);
+    },
+    /**
+     * 上传事件回调
+     *
+     * @param result 回调值
+     */
+    importUploadChange(result) {
+      let file = result.file;
+      let event = result.event;
+      if (event === undefined && file.status === 'uploading') {
+        this.$message.info('开始上传');
+      }
+      if (event && file.status === 'uploading') {
+        this.$message.info('上传中,请稍等……');
+      }
+      if (file.response) {
+        let success = file.response.success;
+        let message = file.response.message;
+        if (!success) {
+          this.$message.error(message);
+        }
+        if (file.status === 'done') {
+          this.dataSource = file.response.result.data;
+          this.errorCount = file.response.result.errorCount;
+          if (this.errorCount > 0) {
+            this.$message.error('导入含有错误项,请检查内容')
+          } else {
+            this.$message.info('上传完成');
+          }
+        }
+      }
+
+    },
+
+  },
+  computed: {
+    importMinioUploadAction() {
+      return window._CONFIG['domianURL'] + this.url.minioUpload;
+    },
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 273 - 0
src/views/dataupload/modules/TaskList.vue

@@ -0,0 +1,273 @@
+<template>
+
+  <a-card :bordered="false">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="客户编号">
+              <j-input placeholder="请输入客户编号" v-model="queryParam.taskName"></j-input>
+            </a-form-item>
+          </a-col>
+          <a-col :xl="6" :lg="7" :md="8" :sm="24">
+            <a-form-item label="任务状态">
+              <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.taskState" dictCode="sms_check_task_state"/>
+            </a-form-item>
+          </a-col>
+
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- 操作按钮区域 -->
+    <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-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"
+        :scroll="{x:true}"
+        bordered
+        rowKey="id"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+        class="j-table-force-nowrap"
+        @change="handleTableChange">
+
+        <template slot="htmlSlot" slot-scope="text">
+          <div v-html="text"></div>
+        </template>
+        <template slot="imgSlot" slot-scope="text,record">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
+          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)">
+            下载
+          </a-button>
+        </template>
+
+        <span slot="action" slot-scope="text, record">
+           <a @click="handUpload(record)">资料上传</a>
+
+           <a-divider type="vertical" />
+          <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 @click="handleDetail(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>
+
+      </a-table>
+    </div>
+    <!-- 任务添加 -->
+    <task-add ref="modalForm" @ok="modalFormOk"></task-add>
+  </a-card>
+
+
+</template>
+
+<script>
+
+  import '@/assets/less/TableExpand.less'
+  import { mixinDevice } from '@/utils/mixin'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import SmsCheckTaskModal from './SmsCheckTaskModal'
+  import TaskAdd from './TaskAdd'
+
+  export default {
+    name: 'TaskList',
+    mixins:[JeecgListMixin, mixinDevice],
+    components: {
+      SmsCheckTaskModal,
+      TaskAdd
+    },
+    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: 'customerNo'
+          },
+          {
+            title:'用户编号',
+            align:"center",
+            dataIndex: 'userNo'
+          },
+          {
+            title:'客户名称',
+            align:"center",
+            dataIndex: 'customerName'
+          },
+          {
+            title:'用户发展员工',
+            align:"center",
+            dataIndex: 'staffName'
+          },
+          {
+            title:'入网时间',
+            align:"center",
+            dataIndex: 'networkAccessTime'
+          },
+          {
+            title:'服务号码',
+            align:"center",
+            dataIndex: 'smsNumber'
+          },
+          {
+            title:'资料状态',
+            align:"center",
+            dataIndex: 'checkState',
+            customRender:function (t,r,index) {
+              let checkState = "无状态";
+              switch (t) {
+                case 0:
+                  checkState = "未处理";
+                  break;
+                case 1:
+                  checkState = "未完善";
+                  break;
+                case 2:
+                  checkState = "待稽核";
+                  break;
+                case 3:
+                  checkState = "待整改";
+                  break;
+                case 4:
+                  checkState = "已整改";
+                  break;
+                case 5:
+                  checkState = "稽核通过";
+                  break;
+              }
+              return checkState;
+            }
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            fixed:"right",
+            width:147,
+            scopedSlots: { customRender: 'action' }
+          }
+        ],
+        url: {
+          list: "/smsCheck/customerInfo/staff/list",
+          delete: "/smsCheck/task/delete",
+          deleteBatch: "/smsCheck/task/deleteBatch",
+          exportXlsUrl: "/smsCheck/task/exportXls",
+          importExcelUrl: "smsCheck/task/importExcel",
+
+        },
+        dictOptions:{},
+        superFieldList:[],
+      }
+    },
+    created() {
+      this.getSuperFieldList();
+    },
+    computed: {
+      importExcelUrl: function(){
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      },
+    },
+    methods: {
+      // 显示添加页面
+      showAdd() {
+        this.$emit('goAdd', true);
+      },
+      // 显示导入页面
+      showImport() {
+        this.$emit('goImport', true);
+      },
+      handUpload(record){
+        let userNo = record.userNo;
+        if (userNo == undefined || userNo == null){
+          this.$message.warning('用户编号不能为空!');
+          return;
+        }
+        //console.log(record)
+        this.$emit('goImport', userNo);
+
+      },
+
+
+      initDictConfig(){
+      },
+      getSuperFieldList(){
+        let fieldList=[];
+        fieldList.push({type:'string',value:'taskName',text:'任务名称',dictCode:''})
+        fieldList.push({type:'string',value:'taskState',text:'任务状态',dictCode:'sms_check_task_state'})
+        fieldList.push({type:'datetime',value:'taskStartTime',text:'任务开始时间'})
+        fieldList.push({type:'datetime',value:'taskEndTime',text:'任务结束时间'})
+        this.superFieldList = fieldList
+      },
+      // handleAdd: function () {
+      //   this.$refs.modalForm.add();
+      //   this.$refs.modalForm.title = "新增";
+      //   this.$refs.modalForm.disableSubmit = false;
+      // },
+      // handleEdit: function (record) {
+      //   this.$refs.modalForm.edit(record);
+      //   this.$refs.modalForm.title = "编辑";
+      //   this.$refs.modalForm.disableSubmit = false;
+      // },
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>