zhangjie 1 жил өмнө
parent
commit
7c4bc40854

+ 11 - 8
src/views/sop/sop-manage/office-sop/index.vue

@@ -11,7 +11,7 @@
         作废
       </t-button>
       <select-metadata
-        v-model="params.formWidgetMetadataList"
+        v-model="params.formWidgetMetadataViewList"
         type="OFFICE_SOP_FLOW"
         @change="metadataChange"
       ></select-metadata>
@@ -43,7 +43,7 @@
       <template #buttons>
         <t-space :size="16">
           <select-filter
-            :metadata="formWidgetMetadataList"
+            :metadata="formWidgetMetadataViewList"
             @confirm="filterConfirm"
           ></select-filter>
           <t-button theme="primary" @click="search">搜索</t-button>
@@ -89,6 +89,9 @@
           <div class="table-operations">
             <template v-if="perm.LINK_Fill">
               <t-link
+                v-if="
+                  row.myself && row.status !== 'END' && row.status !== 'FINISH'
+                "
                 theme="primary"
                 hover="color"
                 @click="editSopFlowHandle(row, 'fill')"
@@ -125,6 +128,7 @@
             </template>
             <template v-if="perm.LINK_ProjectExchange">
               <t-link
+                v-if="row.status !== 'END' && row.status !== 'FINISH'"
                 theme="primary"
                 hover="color"
                 @click="planChangeHandle(row)"
@@ -250,7 +254,8 @@ const fields = ref([
 ]);
 const params = reactive({
   serviceId: '',
-  formWidgetMetadataList: [],
+  formWidgetMetadataViewList: [],
+  formWidgetMetadataConditionList: [],
 });
 const transParams = computed(() => {
   return { ...params, type: 'OFFICE_SOP_FLOW' };
@@ -264,15 +269,13 @@ const {
   onChange,
 } = useFetchTable(sopListApi, { params: transParams });
 
-const formWidgetMetadataList = ref([]);
+const formWidgetMetadataViewList = ref([]);
 const metadataChange = (vals) => {
-  formWidgetMetadataList.value = vals;
+  formWidgetMetadataViewList.value = vals;
 };
 
-const filterData = ref([]);
 const filterConfirm = (data) => {
-  // console.log(data);
-  filterData.value = data.map((item) => {
+  params.formWidgetMetadataConditionList = data.map((item) => {
     return {
       fieldId: item.fieldId,
       operator: item.operator,

+ 49 - 10
src/views/sop/sop-manage/sop-step/index.vue

@@ -31,44 +31,50 @@
         <t-form colon label-width="72px">
           <t-row :gutter="[0, 4]">
             <t-col :span="3">
-              <t-form-item label="项目单号">{{ sop.crmNo }}</t-form-item>
+              <t-form-item label="项目单号">{{ sopInfo.crmNo }}</t-form-item>
             </t-col>
             <t-col :span="3">
-              <t-form-item label="项目名称">{{ sop.crmName }}</t-form-item>
+              <t-form-item label="项目名称">{{ sopInfo.crmName }}</t-form-item>
             </t-col>
             <t-col :span="3">
               <t-form-item label="派单时间">{{
-                timestampFilter(sop.beginTime)
+                timestampFilter(sopInfo.beginTime)
               }}</t-form-item>
             </t-col>
             <t-col :span="3">
               <t-form-item label="客户经理">{{
-                sop.customManagerName
+                sopInfo.customManagerName
               }}</t-form-item>
             </t-col>
             <t-col :span="3">
               <t-form-item label="客户类型">{{
-                sop.customManagerTypeStr
+                sopInfo.customManagerTypeStr
               }}</t-form-item>
             </t-col>
             <t-col :span="3">
-              <t-form-item label="客户名称">{{ sop.customName }}</t-form-item>
+              <t-form-item label="客户名称">{{
+                sopInfo.customName
+              }}</t-form-item>
             </t-col>
             <t-col :span="3">
               <t-form-item label="考试开始时间" label-width="100px">{{
-                timestampFilter(sop.examStartTime)
+                timestampFilter(sopInfo.examStartTime)
               }}</t-form-item>
             </t-col>
             <t-col :span="3">
               <t-form-item label="考试结束时间" label-width="100px">{{
-                timestampFilter(sop.examEndTime)
+                timestampFilter(sopInfo.examEndTime)
               }}</t-form-item>
             </t-col>
             <t-col :span="3">
-              <t-form-item label="实施产品">{{ sop.productName }}</t-form-item>
+              <t-form-item label="实施产品">{{
+                sopInfo.productName
+              }}</t-form-item>
             </t-col>
             <t-col :span="3">
-              <t-form-item label="服务单元">{{ sop.serviceName }}</t-form-item>
+              <t-form-item label="服务单元">{{
+                sopInfo.serviceName
+              }}</t-form-item>
             </t-col>
           </t-row>
         </t-form>
@@ -240,6 +246,18 @@ const IS_EDIT_MODE = computed(() => {
   return props.type === 'edit';
 });
 
+const sopInfo = ref({
+  crmNo: '',
+  crmName: '',
+  beginTime: '',
+  customManagerName: '',
+  customManagerTypeStr: '',
+  customName: '',
+  examStartTime: '',
+  examEndTime: '',
+  productName: '',
+  serviceName: '',
+});
 const needValueCodes = [
   'NUMBER', //新增
   'TEXT',
@@ -285,6 +303,10 @@ const approveRejectFormIds = {
     'approve_radio_region_3',
     'approve_radio_engineer_3',
   ],
+  f_usertask_cloudmark_inside_approve_3: [
+    'approve_radio_region_3',
+    'approve_radio_engineer_3',
+  ],
 };
 const stepHistoryShow = ref(false);
 const flowApproveHistoryList = ref([]);
@@ -308,10 +330,25 @@ function getFlowApproveHistoryList(data, allStepData) {
   });
 }
 
+function updateSopInfo(crmInfo) {
+  let data = { ...props.sop };
+  data.beginTime = crmInfo.crmBeginTime;
+  data.customManagerName = crmInfo.customManagerName;
+  data.customManagerTypeStr =
+    props.sop.customManagerTypeStr || props.sop.customTypeStr;
+  data.customName = crmInfo.customName;
+  data.examStartTime = crmInfo.examStartTime;
+  data.examEndTime = crmInfo.examEndTime;
+  data.productName = crmInfo.productName;
+  data.serviceName = crmInfo.serviceUnitName;
+  sopInfo.value = data;
+}
+
 const initNew = async () => {
   loading.value = true;
   const flowRes = await sopFlowViewApi({ flowId });
   crmInfo.value = flowRes.crmInfo;
+  updateSopInfo(crmInfo.value);
   const res = await flowFormPropertiesApi({
     flowDeploymentId: props.sop.flowDeploymentId,
   });
@@ -331,6 +368,7 @@ const initFill = async () => {
   loading.value = true;
   const res = await sopFlowViewApi({ flowId });
   crmInfo.value = res.crmInfo;
+  updateSopInfo(crmInfo.value);
   curStep.value = res.currFlowTaskResult.taskName;
   currFlowTaskResultSetup.value = res.currFlowTaskResult.setup;
   curStepData.value = res.currFlowTaskResult;
@@ -364,6 +402,7 @@ const initEdit = async () => {
   loading.value = true;
   const flowRes = await sopFlowViewApi({ flowId });
   crmInfo.value = flowRes.crmInfo;
+  updateSopInfo(crmInfo.value);
   const res = await sopEditApi(props.sop.id);
   loading.value = false;
 

+ 9 - 8
src/views/sop/sop-manage/student-sop/index.vue

@@ -11,7 +11,7 @@
         作废
       </t-button>
       <select-metadata
-        v-model="params.formWidgetMetadataList"
+        v-model="params.formWidgetMetadataViewList"
         type="CLOUD_MARK_SOP_FLOW"
         @change="metadataChange"
       ></select-metadata>
@@ -43,7 +43,7 @@
       <template #buttons>
         <t-space :size="16">
           <select-filter
-            :metadata="formWidgetMetadataList"
+            :metadata="formWidgetMetadataViewList"
             @confirm="filterConfirm"
           ></select-filter>
           <t-button theme="primary" @click="search">搜索</t-button>
@@ -89,6 +89,7 @@
           <div class="table-operations" @click.stop>
             <template v-if="perm.LINK_Fill">
               <t-link
+                v-if="row.status !== 'END' && row.status !== 'FINISH'"
                 theme="primary"
                 hover="color"
                 @click="editSopFlowHandle(row, 'fill')"
@@ -125,6 +126,7 @@
             </template>
             <template v-if="perm.LINK_ProjectExchange">
               <t-link
+                v-if="row.status !== 'END' && row.status !== 'FINISH'"
                 theme="primary"
                 hover="color"
                 @click="planChangeHandle(row)"
@@ -249,7 +251,8 @@ const fields = ref([
 ]);
 const params = reactive({
   serviceId: '',
-  formWidgetMetadataList: [],
+  formWidgetMetadataViewList: [],
+  formWidgetMetadataConditionList: [],
 });
 const transParams = computed(() => {
   return { ...params, type: 'CLOUD_MARK_SOP_FLOW' };
@@ -263,15 +266,13 @@ const {
   onChange,
 } = useFetchTable(sopListApi, { params: transParams });
 
-const formWidgetMetadataList = ref([]);
+const formWidgetMetadataViewList = ref([]);
 const metadataChange = (vals) => {
-  formWidgetMetadataList.value = vals;
+  formWidgetMetadataViewList.value = vals;
 };
 
-const filterData = ref([]);
 const filterConfirm = (data) => {
-  // console.log(data);
-  filterData.value = data.map((item) => {
+  params.formWidgetMetadataConditionList = data.map((item) => {
     return {
       fieldId: item.fieldId,
       operator: item.operator,