wsx 11 месяцев назад
Родитель
Сommit
9b1e1ca816

+ 17 - 6
src/BIZComponents/processSubmitDialog/processSubmitDialog.vue

@@ -206,7 +206,8 @@
         userOptions: [],
         userGroupOptions: [],
         dictList: {},
-        rules: {}
+        rules: {},
+        rowData: {}
       };
     },
     async created() {
@@ -233,8 +234,8 @@
       // 获得岗位列表 暂无岗位概念
       this.postOptions = [];
       /*listSimplePosts().then(response => {
-  this.postOptions.push(...response.data);
-});*/
+    this.postOptions.push(...response.data);
+  });*/
       // 获得用户列表
       this.userOptions = [];
       listAllUserBind().then((data) => {
@@ -251,7 +252,8 @@
       await this.getDictList(this.dictEnum['工种类型']);
     },
     methods: {
-      init(row = {}) {
+      init(row = {}, data) {
+        this.rowData = data;
         this.form = { ...this.form, ...row };
         // this.form.businessId = row.id;
         // this.form.businessKey = row.businessKey;
@@ -400,8 +402,17 @@
         });
       },
       async submit() {
-        await processInstanceCreateAPI(this.form);
-        this.$message('提交审核成功');
+        console.log(this.rowData);
+        
+        let varibles = {
+          businessCode: this.rowData.code,
+          businessName: this.rowData.name,
+          businessType: this.rowData.typeName
+        };
+        console.log(varibles);
+
+        await processInstanceCreateAPI({ ...this.form, ...varibles });
+        this.$message.success('提交审核成功');
         this.$emit('reload');
         this.cancel();
       },

+ 2 - 0
src/main.js

@@ -47,6 +47,8 @@ import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css';
 import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';
 function render(props = {}) {
   const { container, routerBase, fileMain } = props;
+  console.log(fileMain);
+  
   Vue.component('fileMain', fileMain);
 
   // const router = new VueRouter({

+ 2 - 2
src/views/project-manage/planManage/components/plan-form.vue

@@ -404,8 +404,8 @@
     async created() {
       this.planList = await this.getTargetPlanTree({
         projectId: '',
-        processStatus: [2],
-        status: [0, 1]
+        // processStatus: [2],
+        // status: [0, 1]
       });
       await this.getProjectsSelectTreeData(
         {

+ 459 - 389
src/views/project-manage/planManage/components/planInfoTable.vue

@@ -1,7 +1,6 @@
 <template>
   <div>
     <el-form ref="form" :model="form">
-
       <!-- 数据表格 -->
       <ele-pro-table
         ref="table"
@@ -17,26 +16,27 @@
         <!-- 表头工具栏 -->
         <template v-slot:toolbar>
           <el-button
-            v-if="dialogType!=='view'"
+            v-if="dialogType !== 'view'"
             size="small"
             type="primary"
             icon="el-icon-plus"
             class="ele-btn-icon"
-            @click="handleAddInfo">
+            @click="handleAddInfo"
+          >
             新增计划节点
           </el-button>
         </template>
 
-        <template v-slot:action="{row,$index}">
+        <template v-slot:action="{ row, $index }">
           <el-popconfirm
             class="ele-action"
             title="确定要删除此信息吗?"
-            :disabled="form.datasource.length==1"
+            :disabled="form.datasource.length == 1"
             @confirm="handleDelInfo($index)"
           >
             <template v-slot:reference>
               <el-link
-                v-if="dialogType!=='view'"
+                v-if="dialogType !== 'view'"
                 type="danger"
                 :underline="false"
                 icon="el-icon-delete"
@@ -46,390 +46,458 @@
             </template>
           </el-popconfirm>
 
-<!--          <el-dropdown v-if="dialogType=='view'" trigger="click">-->
-<!--            <span class="el-dropdown-link">-->
-<!--              操作菜单<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
-<!--            </span>-->
-<!--            <el-dropdown-menu slot="dropdown">-->
-<!--              <el-dropdown-item>-->
-<!--                <el-link icon="el-icon-success" type="success" :underline="false" @click="handleStatus(planStageFinishAPI,'完成',row)">完成-->
-<!--                </el-link>-->
-<!--              </el-dropdown-item>-->
-<!--              <el-dropdown-item>-->
-<!--                <el-link icon="el-icon-video-pause" type="warning" :underline="false" @click="handleStatus(planStagePauseAPI,'暂停',row)">暂停-->
-<!--                </el-link>-->
-<!--              </el-dropdown-item>-->
-<!--              <el-dropdown-item>-->
-<!--                <el-link icon="el-icon-video-play" type="success" :underline="false" @click="handleStatus(planStageStartupAPI,'启动',row)">启动-->
-<!--                </el-link>-->
-<!--              </el-dropdown-item>-->
-<!--              <el-dropdown-item>-->
-<!--                <el-link icon="el-icon-error" type="danger" :underline="false" @click="handleStatus(planStageTerminationAPI,'终止',row)">终止</el-link>-->
-<!--              </el-dropdown-item>-->
-<!--              <el-dropdown-item divided v-if="[2].includes(row.processStatus)&&[0,1].includes(row.status)">-->
-<!--                <el-link-->
-<!--                  type="primary"-->
-<!--                  :underline="false"-->
-<!--                  icon="el-icon-plus"-->
-<!--                  @click="handleAddTask(row)">-->
-<!--                  新增任务-->
-<!--                </el-link>-->
-<!--              </el-dropdown-item>-->
-<!--            </el-dropdown-menu>-->
-<!--          </el-dropdown>-->
-
-
-
+          <!--          <el-dropdown v-if="dialogType=='view'" trigger="click">-->
+          <!--            <span class="el-dropdown-link">-->
+          <!--              操作菜单<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
+          <!--            </span>-->
+          <!--            <el-dropdown-menu slot="dropdown">-->
+          <!--              <el-dropdown-item>-->
+          <!--                <el-link icon="el-icon-success" type="success" :underline="false" @click="handleStatus(planStageFinishAPI,'完成',row)">完成-->
+          <!--                </el-link>-->
+          <!--              </el-dropdown-item>-->
+          <!--              <el-dropdown-item>-->
+          <!--                <el-link icon="el-icon-video-pause" type="warning" :underline="false" @click="handleStatus(planStagePauseAPI,'暂停',row)">暂停-->
+          <!--                </el-link>-->
+          <!--              </el-dropdown-item>-->
+          <!--              <el-dropdown-item>-->
+          <!--                <el-link icon="el-icon-video-play" type="success" :underline="false" @click="handleStatus(planStageStartupAPI,'启动',row)">启动-->
+          <!--                </el-link>-->
+          <!--              </el-dropdown-item>-->
+          <!--              <el-dropdown-item>-->
+          <!--                <el-link icon="el-icon-error" type="danger" :underline="false" @click="handleStatus(planStageTerminationAPI,'终止',row)">终止</el-link>-->
+          <!--              </el-dropdown-item>-->
+          <!--              <el-dropdown-item divided v-if="[2].includes(row.processStatus)&&[0,1].includes(row.status)">-->
+          <!--                <el-link-->
+          <!--                  type="primary"-->
+          <!--                  :underline="false"-->
+          <!--                  icon="el-icon-plus"-->
+          <!--                  @click="handleAddTask(row)">-->
+          <!--                  新增任务-->
+          <!--                </el-link>-->
+          <!--              </el-dropdown-item>-->
+          <!--            </el-dropdown-menu>-->
+          <!--          </el-dropdown>-->
         </template>
-        <template v-slot:name="{row,$index}" v-if="dialogType!=='view'">
-          <el-form-item :prop="'datasource.'+$index+'.name'"
-                        :rules="{required:true,message:'请选择',trigger:['blur','change']}">
+        <template v-slot:name="{ row, $index }" v-if="dialogType !== 'view'">
+          <el-form-item
+            :prop="'datasource.' + $index + '.name'"
+            :rules="{
+              required: true,
+              message: '请选择',
+              trigger: ['blur', 'change']
+            }"
+          >
             <el-input v-model="row.name" clearable></el-input>
           </el-form-item>
         </template>
-        <template v-slot:stage="{row,$index}" v-if="dialogType!=='view'">
-          <el-form-item :prop="'datasource.'+$index+'.stage'">
+        <template v-slot:stage="{ row, $index }" v-if="dialogType !== 'view'">
+          <el-form-item :prop="'datasource.' + $index + '.stage'">
             <el-input v-model="row.stage" clearable></el-input>
           </el-form-item>
         </template>
-        <template v-slot:planStartDate="{row,$index}" v-if="dialogType!=='view'">
-          <el-form-item :prop="'datasource.'+$index+'.planStartDate'"
-                        :rules="{required:true,message:'请选择',trigger:['blur','change']}">
+        <template
+          v-slot:planStartDate="{ row, $index }"
+          v-if="dialogType !== 'view'"
+        >
+          <el-form-item
+            :prop="'datasource.' + $index + '.planStartDate'"
+            :rules="{
+              required: true,
+              message: '请选择',
+              trigger: ['blur', 'change']
+            }"
+          >
             <el-date-picker
               style="width: 100%"
-              :disabled="dialogType=='view'"
+              :disabled="dialogType == 'view'"
               v-model="row.planStartDate"
-              :picker-options="{disabledDate:(time)=>{return row.planEndDate&&time.getTime()>new Date(row.planEndDate)}}"
+              :picker-options="{
+                disabledDate: (time) => {
+                  return (
+                    row.planEndDate &&
+                    time.getTime() > new Date(row.planEndDate)
+                  );
+                }
+              }"
               type="date"
-              placeholder="选择日期">
+              placeholder="选择日期"
+            >
             </el-date-picker>
           </el-form-item>
         </template>
-        <template v-slot:planEndDate="{row,$index}" v-if="dialogType!=='view'">
-          <el-form-item :prop="'datasource.'+$index+'.planEndDate'"
-                        :rules="{required:true,message:'请选择',trigger:['blur','change']}">
+        <template
+          v-slot:planEndDate="{ row, $index }"
+          v-if="dialogType !== 'view'"
+        >
+          <el-form-item
+            :prop="'datasource.' + $index + '.planEndDate'"
+            :rules="{
+              required: true,
+              message: '请选择',
+              trigger: ['blur', 'change']
+            }"
+          >
             <el-date-picker
               style="width: 100%"
-              :disabled="dialogType=='view'"
-              :picker-options="{disabledDate:(time)=>{return row.planStartDate&&time.getTime()<new Date(row.planStartDate)}}"
+              :disabled="dialogType == 'view'"
+              :picker-options="{
+                disabledDate: (time) => {
+                  return (
+                    row.planStartDate &&
+                    time.getTime() < new Date(row.planStartDate)
+                  );
+                }
+              }"
               v-model="row.planEndDate"
               type="date"
-              placeholder="选择日期">
+              placeholder="选择日期"
+            >
             </el-date-picker>
           </el-form-item>
         </template>
-        <template v-slot:responsibleDeptId="{row,$index}">
-          <el-form-item :prop="'datasource.'+$index+'.responsibleDeptId'">
+        <template v-slot:responsibleDeptId="{ row, $index }">
+          <el-form-item :prop="'datasource.' + $index + '.responsibleDeptId'">
             <ele-tree-select
-              :disabled="dialogType=='view'"
+              :disabled="dialogType == 'view'"
               clearable
               :data="deptTreeList"
-              :ref="'deptTreeRef'+$index"
+              :ref="'deptTreeRef' + $index"
               v-model="row.responsibleDeptId"
               valueKey="id"
               labelKey="name"
               placeholder="请选择"
-              @change="(id)=>changeDeptInfo(id,$index)"
+              @change="(id) => changeDeptInfo(id, $index)"
               default-expand-all
             />
           </el-form-item>
         </template>
-        <template v-slot:responsibleUserIds="{row,$index}" v-if="dialogType!=='view'">
-          <el-form-item :prop="'datasource.'+$index+'.responsibleUserIds'">
-            <el-select v-if="userList.length" v-model="row.responsibleUserIds" multiple collapse-tags
-                       filterable placeholder="请选择" style="width: 100%;"
-                       clearable
-                       size="medium"
-                       :disabled="dialogType=='view'">
+        <template
+          v-slot:responsibleUserIds="{ row, $index }"
+          v-if="dialogType !== 'view'"
+        >
+          <el-form-item :prop="'datasource.' + $index + '.responsibleUserIds'">
+            <el-select
+              v-if="userList.length"
+              v-model="row.responsibleUserIds"
+              multiple
+              collapse-tags
+              filterable
+              placeholder="请选择"
+              style="width: 100%"
+              clearable
+              size="medium"
+              :disabled="dialogType == 'view'"
+            >
               <el-option
                 v-for="item in userList"
                 :key="item.id"
                 :label="item.name"
-                :value="item.id">
+                :value="item.id"
+              >
               </el-option>
             </el-select>
             <personSelect
               v-else
-              multiple collapse-tags
-              :disabled="dialogType=='view'"
-              :ref="'directorRef'+$index"
-              v-model="row.responsibleUserIds"/>
+              multiple
+              collapse-tags
+              :disabled="dialogType == 'view'"
+              :ref="'directorRef' + $index"
+              v-model="row.responsibleUserIds"
+            />
           </el-form-item>
         </template>
-        <template v-slot:isMilepost="{row,$index}" v-if="dialogType!=='view'">
+        <template
+          v-slot:isMilepost="{ row, $index }"
+          v-if="dialogType !== 'view'"
+        >
           <el-form-item>
             <el-select v-model="row.isMilepost">
-              <el-option label="否" :value="0"/>
-              <el-option label="是" :value="1"/>
+              <!-- {{ row.isMilepost }} -->
+              <el-option label="否" :value="0" />
+              <el-option label="是" :value="1" />
             </el-select>
           </el-form-item>
         </template>
         <template v-slot:speedPercent="{ row }">
-          <el-progress :stroke-width="20" text-color="#606266" :text-inside="true" :percentage="row.speedPercent||0"
-                       :color="customColorMethod"></el-progress>
+          <el-progress
+            :stroke-width="20"
+            text-color="#606266"
+            :text-inside="true"
+            :percentage="row.speedPercent || 0"
+            :color="customColorMethod"
+          ></el-progress>
         </template>
-        <template v-slot:milepost="{row,$index}" v-if="dialogType!=='view'">
+        <template
+          v-slot:milepost="{ row, $index }"
+          v-if="dialogType !== 'view'"
+        >
           <el-form-item>
             <el-input v-model="row.milepost" clearable></el-input>
           </el-form-item>
         </template>
-        <template v-slot:deliverContent="{row,$index}" v-if="dialogType!=='view'">
+        <template
+          v-slot:deliverContent="{ row, $index }"
+          v-if="dialogType !== 'view'"
+        >
           <el-form-item>
-            <el-input type="textarea" v-model="row.deliverContent" clearable></el-input>
+            <el-input
+              type="textarea"
+              v-model="row.deliverContent"
+              clearable
+            ></el-input>
           </el-form-item>
         </template>
         <template v-slot:proportion="{ row }">
-          <el-input type="number" :min="0" :max="100" v-model="row.proportion" :disabled="dialogType=='view'">
+          <el-input
+            type="number"
+            :min="0"
+            :max="100"
+            v-model="row.proportion"
+            :disabled="dialogType == 'view'"
+          >
           </el-input>
         </template>
-        <template v-slot:remark="{row,$index}" v-if="dialogType!=='view'">
+        <template v-slot:remark="{ row, $index }" v-if="dialogType !== 'view'">
           <el-form-item>
             <el-input type="textarea" v-model="row.remark" clearable></el-input>
           </el-form-item>
         </template>
-        <template v-slot:headerRequired="{column}">
+        <template v-slot:headerRequired="{ column }">
           <span class="is-required">{{ column.label }}</span>
         </template>
       </ele-pro-table>
     </el-form>
-
-
   </div>
 </template>
 
-
 <script>
+  import fileUpload from '@/components/upload/fileUpload.vue';
+  import { getFile } from '@/api/system/file';
+  import PersonSelect from '@/components/CommomSelect/person-select.vue';
+  import { proStatusEnum } from '@/enum/dict';
+  import { deepClone } from '@/utils';
+  import {
+    planStageFinishAPI,
+    planStagePauseAPI,
+    planStageStartupAPI,
+    planStageTerminationAPI
+  } from '@/api/project-manage/plan';
 
-
-import fileUpload from "@/components/upload/fileUpload.vue";
-import {getFile} from "@/api/system/file";
-import PersonSelect from "@/components/CommomSelect/person-select.vue";
-import {proStatusEnum} from "@/enum/dict";
-import {deepClone} from "@/utils";
-import {
-  planStageFinishAPI,
-  planStagePauseAPI,
-  planStageStartupAPI,
-  planStageTerminationAPI
-} from "@/api/project-manage/plan";
-
-export default {
-  name: "planInfoTable",
-  components: {
-    PersonSelect,
-    fileUpload,
-
-  },
-  props: {
-    dialogForm: {
-      type: Object,
-      default: () => {
-        return {
-          ...this.form
-        }
-      }
-    },
-    dialogType: {
-      type: String,
-      default: ''
-    },
-    deptList: {
-      type: Array,
-      default() {
-        return []
-      }
+  export default {
+    name: 'planInfoTable',
+    components: {
+      PersonSelect,
+      fileUpload
     },
-    userList: {
-      type: Array,
-      default() {
-        return []
+    props: {
+      dialogForm: {
+        type: Object,
+        default: () => {
+          return {
+            ...this.form
+          };
+        }
+      },
+      dialogType: {
+        type: String,
+        default: ''
+      },
+      deptList: {
+        type: Array,
+        default() {
+          return [];
+        }
+      },
+      userList: {
+        type: Array,
+        default() {
+          return [];
+        }
+      },
+      deptTreeList: {
+        type: Array,
+        default() {
+          return [];
+        }
       }
     },
-    deptTreeList: {
-      type: Array,
-      default() {
-        return []
+    watch: {
+      dialogForm: {
+        handler(val) {
+          this.form.datasource = deepClone(this.dialogForm.planStageList || []);
+          // this.$nextTick(async () => {
+          //   this.form.datasource.forEach((item, index) => {
+          //     this.getUserList(item.responsibleDeptId, index);
+          //   })
+          // })
+        },
+        deep: true
+      },
+      userList: {
+        handler(val) {
+          this.form.datasource.forEach((item) => {
+            item.responsibleUserIds = [];
+          });
+        }
       }
     },
-  },
-  watch: {
-    dialogForm: {
-      handler(val) {
-        this.form.datasource =  deepClone(this.dialogForm.planStageList || [])
-        // this.$nextTick(async () => {
-        //   this.form.datasource.forEach((item, index) => {
-        //     this.getUserList(item.responsibleDeptId, index);
-        //   })
-        // })
-      },
-      deep: true,
+    data() {
+      return {
+        planStageFinishAPI,
+        planStagePauseAPI,
+        planStageStartupAPI,
+        planStageTerminationAPI,
+        editIndex: undefined, //当前修改数据的下标
+        form: {
+          datasource: []
+        }
+      };
     },
-    userList:{
-      handler(val) {
-        this.form.datasource.forEach((item) => {
-          item.responsibleUserIds = []
-        })
-      }
-    }
-  },
-  data() {
-    return {
-      planStageFinishAPI,
-      planStagePauseAPI,
-      planStageStartupAPI,
-      planStageTerminationAPI,
-      editIndex: undefined,//当前修改数据的下标
-      form: {
-        datasource: []
-      },
+    computed: {
+      columns() {
+        return [
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'name',
+            label: '节点名称',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            slot: 'name',
+            headerSlot: 'headerRequired'
+          },
+          // {
+          //   prop: 'stage',
+          //   label: '计划节点',
+          //   align: 'center',
+          //   showOverflowTooltip: true,
+          //   minWidth: 120,
+          //   slot: 'stage',
+          //   headerSlot: 'headerRequired',
+          // },
+          // {
+          //   prop: 'responsibleDeptId',
+          //   label: '负责部门',
+          //   align: 'center',
+          //   showOverflowTooltip: true,
+          //   minWidth: 130,
+          //   slot: 'responsibleDeptId',
+          //   headerSlot: 'headerRequired',
+          // },
+          {
+            prop: 'responsibleUserNames',
+            label: '负责人',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            slot: 'responsibleUserIds',
+            headerSlot: 'headerRequired'
+          },
+          {
+            prop: 'planStartDate',
+            label: '开始时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            slot: 'planStartDate',
+            headerSlot: 'headerRequired'
+          },
+          {
+            prop: 'planEndDate',
+            label: '结束时间',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            slot: 'planEndDate',
+            headerSlot: 'headerRequired'
+          },
 
-    }
-  },
-  computed: {
-    columns() {
-      return [
-        {
-          columnKey: 'index',
-          label: '序号',
-          type: 'index',
-          width: 55,
-          align: 'center',
-          showOverflowTooltip: true,
-        },
-        {
-          prop: 'name',
-          label: '节点名称',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120,
-          slot: 'name',
-          headerSlot: 'headerRequired',
-        },
-        // {
-        //   prop: 'stage',
-        //   label: '计划节点',
-        //   align: 'center',
-        //   showOverflowTooltip: true,
-        //   minWidth: 120,
-        //   slot: 'stage',
-        //   headerSlot: 'headerRequired',
-        // },
-        // {
-        //   prop: 'responsibleDeptId',
-        //   label: '负责部门',
-        //   align: 'center',
-        //   showOverflowTooltip: true,
-        //   minWidth: 130,
-        //   slot: 'responsibleDeptId',
-        //   headerSlot: 'headerRequired',
-        // },
-        {
-          prop: 'responsibleUserNames',
-          label: '负责人',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120,
-          slot: 'responsibleUserIds',
-          headerSlot: 'headerRequired',
-        },
-        {
-          prop: 'planStartDate',
-          label: '开始时间',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120,
-          slot: 'planStartDate',
-          headerSlot: 'headerRequired',
-        },
-        {
-          prop: 'planEndDate',
-          label: '结束时间',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120,
-          slot: 'planEndDate',
-          headerSlot: 'headerRequired',
-        },
-
-        {
-          prop: 'isMilepost',
-          label: '是否里程碑',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120,
-          slot: 'isMilepost',
-        },
-        {
-          prop: 'deliverContent',
-          label: '交付物说明',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 160,
-          slot: 'deliverContent',
-        },
-        {
-          prop: 'remark',
-          label: '备注',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 160,
-          slot: 'remark',
-        },
-        // {
-        //   prop: 'proportion',
-        //   label: '权重占比(%)',
-        //   align: 'center',
-        //   showOverflowTooltip: true,
-        //   minWidth: 110,
-        //   slot: 'proportion'
-        // },
-        {
-          prop: 'speedPercent',
-          label: '进度',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 120,
-          slot: 'speedPercent'
-        },
-        {
-          prop: 'status',
-          label: '状态',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 100,
-          formatter: (_row, _column, cellValue) => {
-            return proStatusEnum[_row.status].label;
+          {
+            prop: 'isMilepost',
+            label: '是否里程碑',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            slot: 'isMilepost',
+            formatter: (row, column, cellValue) => {
+              return cellValue === 0 ? '否' : '是';
+            }
+          },
+          {
+            prop: 'deliverContent',
+            label: '交付物说明',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 160,
+            slot: 'deliverContent'
+          },
+          {
+            prop: 'remark',
+            label: '备注',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 160,
+            slot: 'remark'
+          },
+          // {
+          //   prop: 'proportion',
+          //   label: '权重占比(%)',
+          //   align: 'center',
+          //   showOverflowTooltip: true,
+          //   minWidth: 110,
+          //   slot: 'proportion'
+          // },
+          {
+            prop: 'speedPercent',
+            label: '进度',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 120,
+            slot: 'speedPercent'
+          },
+          {
+            prop: 'status',
+            label: '状态',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 100,
+            formatter: (_row, _column, cellValue) => {
+              return proStatusEnum[_row.status].label;
+            }
+          },
+          {
+            columnKey: 'action',
+            slot: 'action',
+            label: '操作',
+            resizable: false,
+            width: 130,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'right'
           }
-        },
-        {
-          columnKey: 'action',
-          slot: 'action',
-          label: '操作',
-          resizable: false,
-          width: 130,
-          align: 'center',
-          showOverflowTooltip: true,
-          fixed: 'right'
-        },
-
-      ]
+        ];
+      }
     },
-  },
-  created() {
-    console.log(this.dialogType);
-
-  },
-  mounted() {
-    console.log(this.dialogType);
-  },
-  methods: {
-    downloadFile(file) {
-      getFile({objectName: file.storePath}, file.name);
+    created() {
+      console.log(this.dialogType);
+    },
+    mounted() {
+      console.log(this.dialogType);
     },
-    //新增计划数据
-    handleAddInfo() {
-      this.form.datasource.push(
-        {
+    methods: {
+      downloadFile(file) {
+        getFile({ objectName: file.storePath }, file.name);
+      },
+      //新增计划数据
+      handleAddInfo() {
+        this.form.datasource.push({
           deliverContent: '',
           milepost: '',
           isMilepost: 0,
@@ -440,90 +508,92 @@ export default {
           name: '',
           stage: '',
           status: 0,
-          remark: '',
+          remark: ''
+        });
+      },
+      // 选择负责人部门
+      changeDeptInfo(id, index) {
+        const info = this.deptList.find((e) => e.id == id) || {};
+        this.$set(
+          this.form.datasource[index],
+          'responsibleDeptName',
+          info.name
+        );
+        this.$set(this.form.datasource[index], 'responsibleUserIds', '');
+        this.$set(this.form.datasource[index], 'responsibleUserName', '');
+        this.getUserList(id, index);
+      },
+      customColorMethod(percentage) {
+        if (percentage < 30) {
+          return '#909399';
+        } else if (percentage < 70) {
+          return '#e6a23c';
+        } else {
+          return '#67c23a';
         }
-      )
-    },
-    // 选择负责人部门
-    changeDeptInfo(id, index) {
-      const info = this.deptList.find((e) => e.id == id) || {};
-      this.$set(this.form.datasource[index], 'responsibleDeptName', info.name);
-      this.$set(this.form.datasource[index], 'responsibleUserIds', '');
-      this.$set(this.form.datasource[index], 'responsibleUserName', '');
-      this.getUserList(id, index);
-    },
-    customColorMethod(percentage) {
-      if (percentage < 30) {
-        return '#909399';
-      } else if (percentage < 70) {
-        return '#e6a23c';
-      } else {
-        return '#67c23a';
-      }
-    },
-    // 获取人员数据
-    getUserList(groupId, index) {
-      if (groupId) {
-        this.$refs['directorRef' + index].getList({groupId});
-      }
-    },
-    personChange(val, info, index) {
-      // this.$set(this.form.datasource[index], 'responsibleUserName', info.name);
-    },
-    //
-    clearData() {
-      this.form.datasource.forEach((item, index) => {
-        this.$set(this.form.datasource[index], 'deliverContent', '')
-        this.$set(this.form.datasource[index], 'milepost', '')
-        this.$set(this.form.datasource[index], 'isMilepost', 0)
-        this.$set(this.form.datasource[index], 'responsibleUserIds', '')
-        this.$set(this.form.datasource[index], 'responsibleUserName', '')
-        this.$set(this.form.datasource[index], 'planStartDate', '')
-        this.$set(this.form.datasource[index], 'planEndDate', '')
-        this.$set(this.form.datasource[index], 'name', '')
-        this.$set(this.form.datasource[index], 'stage', '')
-      })
-    },
+      },
+      // 获取人员数据
+      getUserList(groupId, index) {
+        if (groupId) {
+          this.$refs['directorRef' + index].getList({ groupId });
+        }
+      },
+      personChange(val, info, index) {
+        // this.$set(this.form.datasource[index], 'responsibleUserName', info.name);
+      },
+      //
+      clearData() {
+        this.form.datasource.forEach((item, index) => {
+          this.$set(this.form.datasource[index], 'deliverContent', '');
+          this.$set(this.form.datasource[index], 'milepost', '');
+          this.$set(this.form.datasource[index], 'isMilepost', 0);
+          this.$set(this.form.datasource[index], 'responsibleUserIds', '');
+          this.$set(this.form.datasource[index], 'responsibleUserName', '');
+          this.$set(this.form.datasource[index], 'planStartDate', '');
+          this.$set(this.form.datasource[index], 'planEndDate', '');
+          this.$set(this.form.datasource[index], 'name', '');
+          this.$set(this.form.datasource[index], 'stage', '');
+        });
+      },
 
-    //删除关联信息数据
-    handleDelInfo(index) {
-      this.form.datasource.splice(index, 1)
-    },
-    // async handleStatus(API, msg, row) {
-    //   let message = '确定' + msg + '该计划节点吗';
-    //   this.$confirm(message, '提示', {
-    //     type: 'warning'
-    //   }).then(async () => {
-    //     await API(row.id)
-    //     this.$message.success('操作成功');
-    //     this.$emit('init',this.dialogForm);
-    //   }).catch(() => {
-    //   });
-    // },
-    getTableValidate() {
-      return new Promise((resolve, reject) => {
-        //if (this.form.datasource.length == 0) return this.$message.warning('请填写计划节点')
-        this.$refs.form.validate((valid) => {
-          if (!valid) {
-            this.$message.warning('有必填项未填,请检查')
-            reject('有必填项未填,请检查')
-          } else {
-            resolve(this.form.datasource)
-          }
-        })
-      })
-    },
-  }
-}
+      //删除关联信息数据
+      handleDelInfo(index) {
+        this.form.datasource.splice(index, 1);
+      },
+      // async handleStatus(API, msg, row) {
+      //   let message = '确定' + msg + '该计划节点吗';
+      //   this.$confirm(message, '提示', {
+      //     type: 'warning'
+      //   }).then(async () => {
+      //     await API(row.id)
+      //     this.$message.success('操作成功');
+      //     this.$emit('init',this.dialogForm);
+      //   }).catch(() => {
+      //   });
+      // },
+      getTableValidate() {
+        return new Promise((resolve, reject) => {
+          //if (this.form.datasource.length == 0) return this.$message.warning('请填写计划节点')
+          this.$refs.form.validate((valid) => {
+            if (!valid) {
+              this.$message.warning('有必填项未填,请检查');
+              reject('有必填项未填,请检查');
+            } else {
+              resolve(this.form.datasource);
+            }
+          });
+        });
+      }
+    }
+  };
 </script>
 
-
 <style scoped lang="scss">
-.el-dropdown-link {
-  cursor: pointer;
-  color: #188ffd;
-}
-::v-deep .ele-table-tool-default {
-  display: flex !important;
-}
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #188ffd;
+  }
+  ::v-deep .ele-table-tool-default {
+    display: flex !important;
+  }
 </style>

+ 2 - 2
src/views/project-manage/project-initiation/index.vue

@@ -541,7 +541,7 @@
         // 展开折叠
         expandAllFlag: false,
         ruleCode: '',
-        rootId:'',
+        rootId: '',
         isRootId: true
       };
     },
@@ -668,7 +668,7 @@
             businessKey: 'pro_project_approve',
             formCreateUserId: row.createUserId
           };
-          this.$refs.processSubmitDialogRef.init(params);
+          this.$refs.processSubmitDialogRef.init(params, row);
         });
         // submit({
         //   projectId: row.id