Procházet zdrojové kódy

feature(督办): 前端页面调整

likai před 3 roky
rodič
revize
e1b44eb0ea

+ 38 - 29
src/views/plat/task/components/TaskAdd.vue

@@ -15,7 +15,7 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <!-- <el-col :span="12">
           <el-form-item label="开始时间" prop="taskStartDate">
             <el-date-picker
               v-model="form.taskStartDate"
@@ -24,20 +24,35 @@
               type="date"
               value-format="yyyy-MM-dd HH:mm:ss" />
           </el-form-item>
-        </el-col>
+        </el-col> -->
         <el-col :span="12">
-          <el-form-item label="结束时间" prop="taskEndDate">
+          <el-form-item label="要求完成时间" prop="taskEndDate">
             <el-date-picker
               v-model="form.taskEndDate"
-              placeholder="请选择结束时间"
+              placeholder="请选择要求完成时间"
               style="width: 100%"
               type="date"
               value-format="yyyy-MM-dd HH:mm:ss" />
           </el-form-item>
         </el-col>
+        <el-col :span="12">
+          <el-form-item label="督办事项来源" prop="source">
+            <el-input v-model="form.source" placeholder="请输入督办事项来源" />
+          </el-form-item>
+        </el-col>
         <el-col :span="24">
-          <el-form-item label="说明" prop="taskDesc">
-            <el-input v-model="form.taskDesc" placeholder="请输入说明" type="textarea" />
+          <el-form-item label="督办内容" prop="taskDesc">
+            <el-input v-model="form.taskDesc" placeholder="请输入督办内容" type="textarea" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="负责人" prop="mainUserId">
+            <!-- <el-select v-model="form.mainUserId" placeholder="请选择负责人" style="width: 100%">
+              <el-option v-for="item in users" :key="item.id" :label="item.userName" :value="item.id" />
+            </el-select> -->
+            <el-input v-model="form.mainUserName" placeholder="负责人" readonly>
+              <el-button slot="append" icon="el-icon-search" @click="choose(false, 'mainUserId', 'mainUserName')" />
+            </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -54,36 +69,26 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="监办人" prop="watchUserId">
-            <!-- <el-select v-model="form.watchUserId" clear placeholder="请选择监办人" style="width: 100%">
+          <el-form-item label="协办人" prop="teamNames">
+            <!-- <el-select v-model="teamIds" clear multiple placeholder="请选择协办人" style="width: 100%">
               <el-option v-for="item in users" :key="item.id" :label="item.userName" :value="item.id" />
             </el-select> -->
-            <el-input v-model="form.watchUserName" placeholder="监办人" readonly>
-              <el-button slot="append" icon="el-icon-search" @click="choose(false, 'watchUserId', 'watchUserName')" />
-            </el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="负责人" prop="mainUserId">
-            <!-- <el-select v-model="form.mainUserId" placeholder="请选择负责人" style="width: 100%">
-              <el-option v-for="item in users" :key="item.id" :label="item.userName" :value="item.id" />
-            </el-select> -->
-            <el-input v-model="form.mainUserName" placeholder="负责人" readonly>
-              <el-button slot="append" icon="el-icon-search" @click="choose(false, 'mainUserId', 'mainUserName')" />
+            <el-input v-model="form.teamNames" placeholder="协办人" readonly>
+              <el-button slot="append" icon="el-icon-search" @click="choose(true, 'teamIds', 'teamNames')" />
             </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="团队成员">
-            <!-- <el-select v-model="teamIds" clear multiple placeholder="请选择团队成员" style="width: 100%">
+          <el-form-item label="监办人" prop="watchUserId">
+            <!-- <el-select v-model="form.watchUserId" clear placeholder="请选择监办人" style="width: 100%">
               <el-option v-for="item in users" :key="item.id" :label="item.userName" :value="item.id" />
             </el-select> -->
-            <el-input v-model="form.teamNames" placeholder="团队成员" readonly>
-              <el-button slot="append" icon="el-icon-search" @click="choose(true, 'teamIds', 'teamNames')" />
+            <el-input v-model="form.watchUserName" placeholder="监办人" readonly>
+              <el-button slot="append" icon="el-icon-search" @click="choose(false, 'watchUserId', 'watchUserName')" />
             </el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <!-- <el-col :span="12">
           <el-form-item label="关联类型" prop="targetType">
             <el-select
               v-model="form.targetType"
@@ -113,7 +118,7 @@
           <el-form-item label="备注" prop="remark">
             <el-input v-model="form.remark" placeholder="请输入备注" type="textarea" />
           </el-form-item>
-        </el-col>
+        </el-col> -->
       </el-row>
     </el-form>
     <template #footer>
@@ -171,7 +176,7 @@
         // 回款
         payments: [],
         selfVisible: false,
-        // 团队成员
+        // 协办人
         teamIds: [],
         // 客户数据
         customers: [],
@@ -185,6 +190,7 @@
           isOverdue: '10',
           taskStartDate: '',
           taskEndDate: '',
+          source: '',
           taskDesc: '',
           supervisorUserId: '',
           watchUserId: '',
@@ -205,10 +211,12 @@
         rules: {
           taskTitle: [{ required: true, message: '标题不能为空', trigger: 'blur' }],
           taskType: [{ required: true, message: '类型不能为空', trigger: 'blur' }],
-          taskStartDate: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
-          taskEndDate: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
+          // taskStartDate: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
+          taskEndDate: [{ required: true, message: '要求完成时间不能为空', trigger: 'blur' }],
           supervisorUserId: [{ required: true, message: '督办人不能为空', trigger: 'change' }],
           mainUserId: [{ required: true, message: '负责人不能为空', trigger: 'change' }],
+          teamNames: [{ required: true, message: '协办人不能为空', trigger: 'change' }],
+          watchUserId: [{ required: true, message: '监办人不能为空', trigger: 'change' }],
         },
         multiple: false,
         property: '',
@@ -347,6 +355,7 @@
         this.form.isOverdue = '10'
         this.form.taskStartDate = ''
         this.form.taskEndDate = ''
+        this.form.source = ''
         this.form.taskDesc = ''
         this.form.supervisorUserId = ''
         this.form.watchUserId = ''

+ 19 - 13
src/views/plat/task/components/TaskDetail.vue

@@ -7,9 +7,9 @@
           <span style="font-size: 18px; margin-right: 10px">
             {{ theTask.taskTitle }}
           </span>
-          <el-button v-show="theTask.isOverdue === '10'" type="primary" @click="changeStatus('IsOverdue', '20')">
+          <!-- <el-button v-show="theTask.isOverdue === '10'" type="primary" @click="changeStatus('IsOverdue', '20')">
             超期
-          </el-button>
+          </el-button> -->
           <el-button v-show="theTask.taskStatus === '10'" type="primary" @click="changeStatus('TaskStatus', '20')">
             关闭
           </el-button>
@@ -17,25 +17,27 @@
           <el-row :gutter="20" style="margin-top: 10px">
             <el-col :span="8">督办类型:{{ typeMap[theTask.taskType] }}</el-col>
             <el-col :span="8">状态:{{ theTask.taskStatus === '10' ? '进行中' : '关闭' }}</el-col>
-            <el-col :span="8">超期:{{ theTask.isOverdue === '10' ? '否' : '是' }}</el-col>
-            <el-col :span="8">开始时间:{{ parseTime(theTask.taskStartDate) }}</el-col>
-            <el-col :span="8">结束时间:{{ parseTime(theTask.taskEndDate) }}</el-col>
-            <el-col :span="24">说明:{{ theTask.taskDesc }}</el-col>
+            <el-col :span="8">
+              超期:{{ isNotOverdue(parseTime(theTask.taskEndDate, '{y}-{m}-{d} 23:59:59')) ? '否' : '是' }}
+            </el-col>
+            <el-col :span="8">发布时间:{{ parseTime(theTask.taskStartDate) }}</el-col>
+            <el-col :span="8">要求完成时间:{{ parseTime(theTask.taskEndDate) }}</el-col>
+            <el-col :span="24">督办内容:{{ theTask.taskDesc }}</el-col>
             <el-col :span="8">督办人:{{ userMap[theTask.supervisorUserId] }}</el-col>
             <el-col :span="8">监办人:{{ userMap[theTask.watchUserId] }}</el-col>
             <el-col :span="8">负责人:{{ userMap[theTask.mainUserId] }}</el-col>
-            <el-col :span="16">团队成员:{{ teamNames }}</el-col>
-            <el-col :span="8">
+            <el-col :span="16">协办人:{{ teamNames }}</el-col>
+            <!-- <el-col :span="8">
               关联类型:
               <span v-show="theTask.targetType == '10'">客户</span>
               <span v-show="theTask.targetType == '20'">项目</span>
               <span v-show="theTask.targetType == '30'">合同</span>
               <span v-show="theTask.targetType == '40'">回款</span>
-            </el-col>
-            <el-col :span="8">关联对象:{{ theTask.targetName }}</el-col>
+            </el-col> -->
+            <!-- <el-col :span="8">关联对象:{{ theTask.targetName }}</el-col> -->
             <el-col :span="8">创建人:{{ theTask.createdName }}</el-col>
-            <el-col :span="8">创建时间:{{ parseTime(theTask.createdTime) }}</el-col>
-            <el-col :span="24">备注:{{ theTask.remark }}</el-col>
+            <!-- <el-col :span="8">创建时间:{{ parseTime(theTask.createdTime) }}</el-col> -->
+            <!-- <el-col :span="24">备注:{{ theTask.remark }}</el-col> -->
             <el-button v-show="theTask.taskStatus === '10'" type="primary" @click="addProgress">添加进展</el-button>
             <el-table border :data="progressList" height="440">
               <el-table-column align="center" label="进展说明" prop="progDesc" />
@@ -138,7 +140,7 @@
       return {
         // 进展新增弹窗
         progressAddDialogVisible: false,
-        // 团队成员
+        // 协办人
         teamNames: '',
         // 评论新增弹窗
         commentAddDialogVisible: false,
@@ -158,6 +160,10 @@
       },
     },
     methods: {
+      // 判断是否没有超期
+      isNotOverdue(date) {
+        return new Date() <= new Date(date)
+      },
       // 改变督办状态
       changeStatus(type, status) {
         this.$confirm('确定修改督办状态?', '提示', {

+ 20 - 16
src/views/plat/task/detail.vue

@@ -28,39 +28,39 @@
               <span v-else-if="theTask.taskStatus === '30'">流程完成</span>
             </el-descriptions-item>
             <el-descriptions-item content-class-name="my-content" label="超期" label-class-name="my-label">
-              {{ theTask.isOverdue === '10' ? '否' : '是' }}
+              {{ isNotOverdue(parseTime(theTask.taskEndDate, '{y}-{m}-{d} 23:59:59')) ? '否' : '是' }}
             </el-descriptions-item>
-            <el-descriptions-item content-class-name="my-content" label="开始时间" label-class-name="my-label">
-              {{ parseTime(theTask.taskStartDate) }}
+            <el-descriptions-item content-class-name="my-content" label="发布时间" label-class-name="my-label">
+              {{ parseTime(theTask.taskStartDate, '{y}-{m}-{d}') }}
             </el-descriptions-item>
-            <el-descriptions-item content-class-name="my-content" label="结束时间" label-class-name="my-label">
-              {{ parseTime(theTask.taskEndDate) }}
+            <el-descriptions-item content-class-name="my-content" label="要求完成时间" label-class-name="my-label">
+              {{ parseTime(theTask.taskEndDate, '{y}-{m}-{d}') }}
             </el-descriptions-item>
-            <el-descriptions-item content-class-name="my-content" label="说明" label-class-name="my-label">
+            <el-descriptions-item content-class-name="my-content" label="督办内容" label-class-name="my-label">
               {{ theTask.taskDesc }}
             </el-descriptions-item>
           </el-descriptions>
           <el-descriptions :colon="false" :column="6" direction="vertical">
+            <el-descriptions-item content-class-name="my-content" label="负责人" label-class-name="my-label">
+              {{ userMap[theTask.mainUserId] }}
+            </el-descriptions-item>
+            <el-descriptions-item content-class-name="my-content" label="协办人" label-class-name="my-label">
+              {{ teamNames }}
+            </el-descriptions-item>
             <el-descriptions-item content-class-name="my-content" label="督办人" label-class-name="my-label">
               {{ userMap[theTask.supervisorUserId] }}
             </el-descriptions-item>
             <el-descriptions-item content-class-name="my-content" label="监办人" label-class-name="my-label">
               {{ userMap[theTask.watchUserId] }}
             </el-descriptions-item>
-            <el-descriptions-item content-class-name="my-content" label="负责人" label-class-name="my-label">
-              {{ userMap[theTask.mainUserId] }}
-            </el-descriptions-item>
-            <el-descriptions-item content-class-name="my-content" label="团队成员" label-class-name="my-label">
-              {{ teamNames }}
-            </el-descriptions-item>
-            <el-descriptions-item content-class-name="my-content" label="关联类型" label-class-name="my-label">
+            <!-- <el-descriptions-item content-class-name="my-content" label="关联类型" label-class-name="my-label">
               <span v-show="theTask.targetType == '10'">客户</span>
               <span v-show="theTask.targetType == '20'">项目</span>
               <span v-show="theTask.targetType == '30'">合同</span>
               <span v-show="theTask.targetType == '40'">回款</span>
-            </el-descriptions-item>
-            <el-descriptions-item content-class-name="my-content" label="关联对象" label-class-name="my-label">
-              {{ theTask.targetName }}
+            </el-descriptions-item> -->
+            <el-descriptions-item content-class-name="my-content" label="督办事项来源" label-class-name="my-label">
+              {{ theTask.source }}
             </el-descriptions-item>
           </el-descriptions>
         </header>
@@ -219,6 +219,10 @@
       this.open()
     },
     methods: {
+      // 判断是否没有超期
+      isNotOverdue(date) {
+        return new Date() <= new Date(date)
+      },
       // 打开弹窗
       open() {
         // 获取数据信息

+ 27 - 17
src/views/plat/task/index.vue

@@ -96,7 +96,7 @@
                 <span v-if="row.taskStatus === '30'">流程完成</span>
               </span>
               <span v-else-if="item.prop === 'isOverdue'">
-                {{ row.isOverdue === '10' ? '否' : '是' }}
+                {{ isNotOverdue(parseTime(row['taskEndDate'], '{y}-{m}-{d} 23:59:59')) ? '否' : '是' }}
               </span>
               <span v-else-if="item.prop === 'mainUserId' || item.prop === 'supervisorUserId'">
                 {{ userMap[row[item.prop]] }}
@@ -204,23 +204,29 @@
             sortable: false,
           },
           {
-            label: '超期',
+            label: '督办事项来源',
             width: '120px',
-            prop: 'isOverdue',
+            prop: 'source',
             sortable: false,
           },
           {
-            label: '督办说明',
+            label: '超期',
             width: '120px',
-            prop: 'taskDesc',
+            prop: 'isOverdue',
             sortable: false,
           },
           {
-            label: '关联对象',
+            label: '督办内容',
             width: '120px',
-            prop: 'targetName',
+            prop: 'taskDesc',
             sortable: false,
           },
+          // {
+          //   label: '关联对象',
+          //   width: '120px',
+          //   prop: 'targetName',
+          //   sortable: false,
+          // },
           {
             label: '负责人',
             width: '120px',
@@ -228,7 +234,7 @@
             sortable: false,
           },
           {
-            label: '团队成员',
+            label: '协办人',
             width: '180px',
             prop: 'ownerUserId',
             sortable: false,
@@ -240,23 +246,23 @@
             sortable: false,
           },
           {
-            label: '开始时间',
+            label: '发布时间',
             width: '160px',
             prop: 'taskStartDate',
             sortable: false,
           },
           {
-            label: '结束时间',
+            label: '要求完成时间',
             width: '160px',
             prop: 'taskEndDate',
             sortable: false,
           },
-          {
-            label: '创建时间',
-            width: '160px',
-            prop: 'createdTime',
-            sortable: false,
-          },
+          // {
+          //   label: '创建时间',
+          //   width: '160px',
+          //   prop: 'createdTime',
+          //   sortable: false,
+          // },
         ],
       }
     },
@@ -272,6 +278,10 @@
       this.fetchData()
     },
     methods: {
+      // 判断是否没有超期
+      isNotOverdue(date) {
+        return new Date() <= new Date(date)
+      },
       // 刷新表数据和数量统计
       doRefresh() {
         this.fetchData()
@@ -403,7 +413,7 @@
             console.error(err)
           })
       },
-      // 团队成员
+      // 协办人
       generateTeamMembers(ids) {
         if (!ids) {
           return ''