Browse Source

fix: 修改页面样式、修复工单创建文件上传、工单记录修改为下拉加载

liuzl 2 years ago
parent
commit
4cda15cf18

+ 12 - 11
src/views/base/agent/index.vue

@@ -83,7 +83,12 @@
             :sortable="item.sortable"
             :width="item.width">
             <template #default="{ row }">
-              <el-button v-if="item.prop === 'distName'" style="font-size: 14px" type="text" @click="handleDetail(row)">
+              <el-button
+                v-if="item.prop === 'distName'"
+                class="link-button"
+                style="font-size: 14px"
+                type="text"
+                @click="handleDetail(row)">
                 {{ row.distName }}
               </el-button>
               <span v-else-if="item.prop === 'allProductAmount'">
@@ -165,9 +170,10 @@
         columns: [
           {
             label: '代理商名称',
-            width: 'auto',
+            width: '220px',
             prop: 'distName',
             sortable: false,
+            disableCheck: true,
           },
           {
             label: '所在省份',
@@ -177,19 +183,19 @@
           },
           {
             label: 'ABC项目总数量',
-            width: '100px',
+            width: '140px',
             prop: 'projectNum',
             sortable: false,
           },
           {
             label: 'ABC项目出货总金额',
-            width: '100px',
+            width: '150px',
             prop: 'allProductAmount',
             sortable: false,
           },
           {
             label: '成交项目数量',
-            width: '100px',
+            width: '140px',
             prop: 'saledProjectNum',
             sortable: false,
           },
@@ -201,7 +207,7 @@
           },
           {
             label: '未回款总金额',
-            width: '100px',
+            width: '140px',
             prop: 'unpaidAmount',
             sortable: false,
           },
@@ -216,35 +222,30 @@
             width: 'auto',
             prop: 'belongSale',
             sortable: false,
-            disableCheck: false,
           },
           {
             label: '业务范围',
             width: 'auto',
             prop: 'businessScope',
             sortable: false,
-            disableCheck: false,
           },
           {
             label: '审核类型',
             width: 'auto',
             prop: 'approItem',
             sortable: false,
-            disableCheck: false,
           },
           {
             label: '审核状态',
             width: 'auto',
             prop: 'approStatus',
             sortable: false,
-            disableCheck: false,
           },
           {
             label: '创建时间',
             width: '100px',
             prop: 'createdTime',
             sortable: false,
-            disableCheck: false,
           },
         ],
 

+ 7 - 11
src/views/base/distributor/index.vue

@@ -87,7 +87,7 @@
             :sortable="item.sortable"
             :width="item.width">
             <template #default="{ row }">
-              <el-button v-if="item.prop === 'distName'" style="font-size: 14px" type="text" @click="handleDetail(row)">
+              <el-button v-if="item.prop === 'distName'" class="link-button" type="text" @click="handleDetail(row)">
                 {{ row.distName }}
               </el-button>
               <span v-else-if="item.prop === 'allProductAmount'">
@@ -170,9 +170,10 @@
         columns: [
           {
             label: '经销商名称',
-            width: 'auto',
+            width: '220px',
             prop: 'distName',
             sortable: false,
+            disableCheck: true,
           },
           {
             label: '所在省份',
@@ -182,19 +183,19 @@
           },
           {
             label: 'ABC项目总数量',
-            width: '100px',
+            width: '140px',
             prop: 'projectNum',
             sortable: false,
           },
           {
             label: 'ABC项目出货总金额',
-            width: '100px',
+            width: '150px',
             prop: 'allProductAmount',
             sortable: false,
           },
           {
             label: '成交项目数量',
-            width: '100px',
+            width: '140px',
             prop: 'saledProjectNum',
             sortable: false,
           },
@@ -206,7 +207,7 @@
           },
           {
             label: '未回款总金额',
-            width: '100px',
+            width: '140px',
             prop: 'unpaidAmount',
             sortable: false,
           },
@@ -221,35 +222,30 @@
             width: '100px',
             prop: 'belongSale',
             sortable: false,
-            disableCheck: true,
           },
           {
             label: '业务范围',
             width: 'auto',
             prop: 'businessScope',
             sortable: false,
-            disableCheck: true,
           },
           {
             label: '审核类型',
             width: 'auto',
             prop: 'approItem',
             sortable: false,
-            disableCheck: false,
           },
           {
             label: '审核状态',
             width: 'auto',
             prop: 'approStatus',
             sortable: false,
-            disableCheck: false,
           },
           {
             label: '创建时间',
             width: '100px',
             prop: 'createdTime',
             sortable: false,
-            disableCheck: false,
           },
         ],
 

+ 6 - 5
src/views/base/partners/index.vue

@@ -82,7 +82,7 @@
             </el-upload>
           </vab-query-form-left-panel>
           <vab-query-form-right-panel>
-            <table-tool :columns="columns" :show-columns.sync="showColumns" table-type="productTable" />
+            <table-tool :columns="columns" :show-columns.sync="showColumns" table-type="partnerTable" />
           </vab-query-form-right-panel>
         </vab-query-form>
 
@@ -160,7 +160,7 @@
         columns: [
           {
             label: '负责区域',
-            width: 'auto',
+            width: '220px',
             prop: 'territory',
             sortable: false,
             disableCheck: true,
@@ -168,20 +168,20 @@
           {
             label: '联系人',
             prop: 'name',
-            width: '160px',
+            width: '120px',
             sortable: false,
             disableCheck: true,
           },
           {
             label: '联系方式',
-            width: '160px',
+            width: '120px',
             prop: 'contactWay',
             sortable: false,
           },
 
           {
             label: '岗位',
-            width: '160px',
+            width: '120px',
             prop: 'post',
             sortable: false,
           },
@@ -189,6 +189,7 @@
             label: '备注',
             width: 'auto',
             prop: 'remark',
+            minWidth: '220px',
             sortable: false,
           },
         ],

+ 1 - 1
src/views/base/product/index.vue

@@ -58,7 +58,7 @@
             </el-button>
           </vab-query-form-left-panel>
           <vab-query-form-right-panel>
-            <table-tool :columns="columns" :show-columns.sync="showColumns" table-type="productTable" />
+            <table-tool :columns="columns" :show-columns.sync="showColumns" table-type="productDataTable" />
           </vab-query-form-right-panel>
         </vab-query-form>
 

+ 4 - 2
src/views/base/region/index.vue

@@ -207,13 +207,15 @@
           {
             label: '创建人',
             prop: 'createdName',
-            width: '120',
+            minWidth: '200px',
+            width: 'auto',
             sortable: false,
             disableCheck: true,
           },
           {
             label: '创建时间',
-            width: '120',
+            minWidth: '200px',
+            width: 'auto',
             prop: 'createdTime',
             sortable: false,
             disableCheck: true,

+ 2 - 0
src/views/plat/punchRecords/index.vue

@@ -49,10 +49,12 @@
                     <!-- 打卡类型(10居家20客户30经销商40代理商) 居家不显示 v-show="item.punchType != 10"-->
                     <span @click="lookTarget(item)">
                       {{ item.targetName }}
+                      <span v-if="item.punchType == 50" style="color: #1d66dc">({{ item.partnerContactName }})</span>
                       <el-tag v-if="item.punchType == 10" type="info">居家</el-tag>
                       <el-tag v-else-if="item.punchType == 20" type="success">客户</el-tag>
                       <el-tag v-else-if="item.punchType == 30" type="warning">经销商</el-tag>
                       <el-tag v-else-if="item.punchType == 40" type="danger">代理商</el-tag>
+                      <el-tag v-else-if="item.punchType == 50">合作伙伴</el-tag>
                     </span>
                   </span>
                   <span>

+ 6 - 6
src/views/plat/questionnaire/index.vue

@@ -58,7 +58,7 @@
 
     <el-table v-loading="listLoading" border :data="list" :height="height" @selection-change="setSelectRows">
       <el-table-column align="center" show-overflow-tooltip type="selection" />
-      <el-table-column align="center" label="单位名称" prop="unitName" show-overflow-tooltip>
+      <el-table-column align="center" label="单位名称" prop="unitName" show-overflow-tooltip width="220">
         <template #default="{ row }">
           <el-button class="link-button" type="text" @click="handleDetail(row)">
             {{ row.unitName }}
@@ -66,22 +66,22 @@
         </template>
       </el-table-column>
       <el-table-column align="center" label="职位" prop="objPosition" show-overflow-tooltip />
-      <el-table-column align="center" label="称呼" prop="objName" show-overflow-tooltip />
-      <el-table-column align="center" label="电话" prop="objPhone" show-overflow-tooltip />
+      <el-table-column align="center" label="称呼" prop="objName" show-overflow-tooltip width="100" />
+      <el-table-column align="center" label="电话" prop="objPhone" show-overflow-tooltip width="140" />
       <el-table-column align="center" label="咨询事项" prop="csnMatters" show-overflow-tooltip />
-      <el-table-column align="center" label="跟进状态" prop="reportType">
+      <el-table-column align="center" label="跟进状态" prop="reportType" width="100">
         <template #default="{ row }">
           {{ row.qstStatus === '10' ? '待跟进' : '已跟进' }}
         </template>
       </el-table-column>
       <el-table-column align="center" label="跟进情况" prop="followUp" show-overflow-tooltip />
       <el-table-column align="center" label="问题描述" prop="remark" show-overflow-tooltip />
-      <el-table-column align="center" label="创建时间" prop="createdTime">
+      <el-table-column align="center" label="创建时间" prop="createdTime" width="120">
         <template #default="scope">
           <span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column align="center" label="操作" show-overflow-tooltip width="125">
+      <el-table-column align="center" label="操作" show-overflow-tooltip width="120">
         <template #default="{ row }">
           <el-button v-permissions="['plat:questionnaire:follow']" type="text" @click="handleEdit(row)">跟进</el-button>
         </template>

+ 34 - 21
src/views/plat/work/index.vue

@@ -9,7 +9,7 @@
               clearable
               filterable
               placeholder="请选择项目名"
-              @keyup.enter.native="fetchData" />
+              @keyup.enter.native="fetchData(1)" />
           </el-form-item>
           <el-form-item label="工单类型">
             <el-select
@@ -17,7 +17,7 @@
               clearable
               filterable
               placeholder="请选择工单类型"
-              @change="fetchData">
+              @change="fetchData(1)">
               <el-option v-for="user in orderTypeList" :key="user.val" :label="user.val" :value="user.val" />
             </el-select>
           </el-form-item>
@@ -27,7 +27,7 @@
               clearable
               filterable
               placeholder="请输入分派人员"
-              @keyup.enter.native="fetchData" />
+              @keyup.enter.native="fetchData(1)" />
           </el-form-item>
           <el-form-item label="销售工程师">
             <el-input
@@ -35,7 +35,7 @@
               clearable
               filterable
               placeholder="请输入销售工程师"
-              @keyup.enter.native="fetchData" />
+              @keyup.enter.native="fetchData(1)" />
           </el-form-item>
           <el-form-item label="时间">
             <el-date-picker
@@ -46,17 +46,17 @@
               style="width: 100%"
               type="datetimerange"
               value-format="yyyy-MM-dd HH:mm:ss"
-              @change="fetchData" />
+              @change="fetchData(1)" />
           </el-form-item>
           <el-form-item>
-            <el-button icon="el-icon-search" type="primary" @click="fetchData">查询</el-button>
+            <el-button icon="el-icon-search" type="primary" @click="fetchData(1)">查询</el-button>
             <el-button icon="el-icon-refresh-right" @click="reset">重置</el-button>
           </el-form-item>
         </el-form>
       </vab-query-form-top-panel>
     </vab-query-form>
     <el-empty v-if="dynamicsList.length == 0" :image-size="200" />
-    <ul v-else class="records" :style="{ height: height }">
+    <ul v-else v-infinite-scroll="loadData" class="records" :style="{ height: height }">
       <li v-for="(v, index) in dynamicsList" :key="index">
         <div class="date">
           <h2>{{ parseTime(v.updatedTime, '{y}-{m}-{d}').split('-')[2] }}</h2>
@@ -238,10 +238,13 @@
           orderTypeName: '',
           assignUserName: '',
           saleName: '',
-          trialTime: [this.getFirstDay(), this.getLastDay()],
-          updatedTimeStart: this.getFirstDay(),
-          updatedTimeEnd: this.getLastDay(),
+          trialTime: [],
+          updatedTimeStart: null,
+          updatedTimeEnd: null,
+          pageSize: 10,
+          pageNum: 1,
         },
+        total: 0,
       }
     },
     computed: {
@@ -262,10 +265,16 @@
       },
     },
     mounted() {
-      this.fetchData()
-      console.log(this.getFirstDay(), this.getLastDay())
+      this.fetchData(1)
     },
     methods: {
+      loadData() {
+        console.log('load')
+        if (this.total > this.dynamicsList.length) {
+          this.queryForm.pageNum++
+          this.fetchData()
+        }
+      },
       getFirstDay() {
         var y = new Date().getFullYear() //获取年份
         var m = new Date().getMonth() + 1 //获取月份
@@ -289,29 +298,33 @@
           orderTypeName: '',
           assignUserName: '',
           saleName: '',
-          trialTime: [this.getFirstDay(), this.getLastDay()],
-          updatedTimeStart: this.getFirstDay(),
-          updatedTimeEnd: this.getLastDay(),
+          trialTime: [],
+          updatedTimeStart: null,
+          updatedTimeEnd: null,
         }
-        this.fetchData()
+        this.fetchData(1)
       },
       changeLength(index, length) {
         this.$set(this.dynamicsList[index], 'showLength', length)
       },
-      async fetchData() {
+      async fetchData(num) {
         let params = this.queryForm
-        console.log(params)
+        params.pageNum = num || params.pageNum
         if (params.trialTime && params.trialTime.length == 2) {
           params.updatedTimeStart = params.trialTime[0]
           params.updatedTimeEnd = params.trialTime[1]
         } else {
-          params.updatedTimeStart = ''
-          params.updatedTimeEnd = ''
+          params.updatedTimeStart = null
+          params.updatedTimeEnd = null
         }
         const [err, res] = await to(workApi.getListFull(params))
         if (err) return
         if (res.code == 200) {
-          this.dynamicsList = res.data.list
+          if (this.queryForm.pageNum == 1) {
+            this.dynamicsList = res.data.list
+          } else {
+            this.dynamicsList = this.dynamicsList.concat(res.data.list)
+          }
           this.total = res.data.total
         }
       },

+ 1 - 1
src/views/proj/business/components/DetailsContract.vue

@@ -6,7 +6,7 @@
           v-model="queryForm.contractName"
           clearable
           placeholder="合同名称"
-          style="width: 50%"
+          style="width: 50%; margin-bottom: 15px"
           @keyup.enter.native="fetchData" />
       </vab-query-form-left-panel>
     </vab-query-form>

+ 3 - 1
src/views/proj/business/detail.vue

@@ -180,7 +180,9 @@
               @fetch-data="getRecord" />
           </el-tab-pane>
           <el-tab-pane label="产品信息" name="product">
-            <h3 style="float: right; margin-right: 20px">预计出货金额: {{ formatPrice(details.estTransPrice) }}</h3>
+            <h3 style="float: right; margin-right: 20px; margin-bottom: 15px">
+              预计出货金额: {{ formatPrice(details.estTransPrice) }}
+            </h3>
             <product-table ref="productTable" is-look :product-data="productData" />
           </el-tab-pane>
           <el-tab-pane label="合同记录" name="contract">

+ 10 - 10
src/views/proj/business/index.vue

@@ -66,21 +66,21 @@
           <el-form-item>
             <el-button icon="el-icon-search" type="primary" @click="queryData">查询</el-button>
             <el-button icon="el-icon-refresh" type="primary" @click="resetQuery">重置</el-button>
+            <el-button v-permissions="['proj:business:add']" icon="el-icon-plus" type="primary" @click="handleEdit">
+              新增项目
+            </el-button>
+            <el-button
+              v-permissions="['proj:business:transfer']"
+              icon="el-icon-refresh"
+              type="primary"
+              @click="handleTransfer">
+              转移项目
+            </el-button>
           </el-form-item>
         </el-form>
       </vab-query-form-top-panel>
 
       <vab-query-form-left-panel :span="12">
-        <el-button v-permissions="['proj:business:add']" icon="el-icon-plus" type="primary" @click="handleEdit">
-          新增项目
-        </el-button>
-        <el-button
-          v-permissions="['proj:business:transfer']"
-          icon="el-icon-refresh"
-          type="primary"
-          @click="handleTransfer">
-          转移项目
-        </el-button>
         <!--        <el-button icon="el-icon-plus" type="primary" @click="handleEdit">创建任务</el-button>-->
         <!--        <el-button icon="el-icon-plus" type="primary" @click="handleEdit">创建工单</el-button>-->
         <!--        <el-button icon="el-icon-plus" type="primary" @click="handleEdit">创建合同</el-button>-->

+ 6 - 6
src/views/work/deliver/index.vue

@@ -138,32 +138,32 @@
           },
           {
             label: '交付状态',
-            width: '160px',
+            width: '100px',
             prop: 'orderStatus',
           },
           {
             label: '交付类型',
-            width: '160px',
+            width: '100px',
             prop: 'orderType',
           },
           {
             label: '关联客户',
-            width: 'auto',
+            width: '220px',
             prop: 'custName',
           },
           {
             label: '关联项目',
-            width: 'auto',
+            width: '220px',
             prop: 'projectName',
           },
           {
             label: '项目经理',
-            width: '160px',
+            width: '120px',
             prop: 'projectManName',
           },
           {
             label: '交付经理',
-            width: '160px',
+            width: '120px',
             prop: 'deliverManName',
           },
           {

+ 10 - 1
src/views/work/order/components/DingTalkFromToVue.vue

@@ -81,11 +81,17 @@
                 :ref="item.props.id"
                 :action="uploadFileUrl"
                 :limit="1"
+                :on-remove="
+                  (file, fileList) => {
+                    return removeFile(file, fileList, index)
+                  }
+                "
                 :on-success="
                   (response, file) => {
                     return setQuotationFile(response, file, index)
                   }
-                ">
+                "
+                :show-file-list="typeof item.props.value == 'string'">
                 <el-button size="mini" type="primary">点击上传</el-button>
               </el-upload>
 
@@ -234,6 +240,9 @@
         this.dingtalkForm.items[this.userItemIndex].props.value = nickName
         this.$forceUpdate()
       },
+      removeFile(file, list, index) {
+        this.dingtalkForm.items[index].props.value = null
+      },
       async setQuotationFile(res, file, index) {
         // 如果上传成功
         if (res.Code == 200) {

+ 7 - 7
src/views/work/order/index.vue

@@ -128,13 +128,13 @@
         columns: [
           {
             label: '工单编号',
-            width: '160px',
+            width: '80px',
             prop: 'id',
             disableCheck: true,
           },
           {
             label: '工单标题',
-            width: '160px',
+            width: '220px',
             prop: 'name',
             disableCheck: true,
           },
@@ -145,17 +145,17 @@
           },
           {
             label: '工单状态',
-            width: 'auto',
+            width: '100px',
             prop: 'orderStatus',
           },
           {
             label: '关联客户',
-            width: 'auto',
+            width: '220px',
             prop: 'custName',
           },
           {
             label: '关联项目',
-            width: 'auto',
+            width: '220px',
             prop: 'nboName',
           },
           {
@@ -165,7 +165,7 @@
           },
           {
             label: '负责人',
-            width: 'auto',
+            width: '120px',
             prop: 'assignUserName',
           },
           {
@@ -175,7 +175,7 @@
           },
           {
             label: '申请人',
-            width: 'auto',
+            width: '120px',
             prop: 'createdName',
           },
         ],