zhangjie 1 年之前
父节点
当前提交
3154a9ace5

+ 18 - 1
src/views/project-quality/project-quality-manage/issues-feedback/index.vue

@@ -41,6 +41,12 @@
         :selected-row-keys="selectedRowKeys"
         @select-change="selectChange"
       >
+        <template #problemNo="{ col, row }">
+          <more-content
+            :content="row[col.colKey]"
+            @action="handleDetail(row)"
+          ></more-content>
+        </template>
         <template #custom-type="{ col, row }">
           {{ customerTypeFilter(row[col.colKey]) }}
         </template>
@@ -80,7 +86,7 @@
       v-if="perm.LINK_Approve"
       v-model:visible="showQualityIssueDialog"
       :sop="curSopData"
-      type="fill"
+      :type="curType"
       @confirm="fetchData"
     ></quality-issue-dialog>
   </div>
@@ -310,12 +316,23 @@ const handleDestroy = () => {
 };
 
 const showQualityIssueDialog = ref(false);
+const curType = ref('fill');
 const auditQualityIssueHandle = (row) => {
   curSopData.value = {
     ...row,
     customManagerTypeStr: row.customTypeStr,
     customName: row.custom,
   };
+  curType.value = 'fill';
+  showQualityIssueDialog.value = true;
+};
+const handleDetail = (row) => {
+  curSopData.value = {
+    ...row,
+    customManagerTypeStr: row.customTypeStr,
+    customName: row.custom,
+  };
+  curType.value = 'view';
   showQualityIssueDialog.value = true;
 };
 </script>

+ 1 - 1
src/views/sop/components/dynamic-form-item/SIGN.vue

@@ -81,7 +81,7 @@ const visibleChange = (visible) => {
 };
 const createQrcodeValue = computed(() => {
   //先用体验版的测试扫码链接,只能写死,后期小程序发正式版本再增加支持活的参数
-  return 'https://sopwxapp.qmth.com.cn/sign/?key=' + this.key;
+  return 'https://sopwxapp.qmth.com.cn/sign/?key=' + key.value;
 });
 </script>
 

+ 3 - 1
src/views/sop/sop-manage/project-change-report/index.vue

@@ -46,7 +46,9 @@
         <template #operate="{ row }">
           <div v-if="perm.LINK_Finish" class="table-operations">
             <t-link
-              :disabled="row.projectExchangeFlowStatus !== 'UN_APPROVE'"
+              :disabled="
+                row.projectExchangeFlowStatus !== 'UN_APPROVE' || !row.myself
+              "
               theme="primary"
               hover="color"
               @click="handleApply(row)"

+ 32 - 14
src/views/sop/sop-manage/quality-issue/index.vue

@@ -82,13 +82,14 @@
             </t-col>
           </t-row>
         </t-form>
-        <t-space class="sop-step-footer">
-          <template v-if="showAction">
-            <t-button theme="primary" @click="submitHandle('START')"
-              >提交</t-button
-            >
-            <t-button theme="default" @click="cancelHandle">取消</t-button>
-          </template>
+        <t-space v-if="showAction" class="sop-step-footer">
+          <t-button theme="primary" @click="submitHandle('START')"
+            >提交</t-button
+          >
+          <t-button theme="default" @click="cancelHandle">取消</t-button>
+        </t-space>
+        <t-space v-else class="sop-step-footer" style="flex-direction: row">
+          <t-button theme="primary" @click="cancelHandle">返回</t-button>
         </t-space>
       </t-tab-panel>
     </t-tabs>
@@ -123,6 +124,9 @@ const emit = defineEmits(['confirm', 'cancel']);
 const IS_NEW_MODE = computed(() => {
   return props.type === 'new';
 });
+const IS_VIEW_MODE = computed(() => {
+  return props.type === 'view';
+});
 const IS_FILL_MODE = computed(() => {
   return props.type === 'fill';
 });
@@ -201,16 +205,12 @@ const initFill = async () => {
   sopInfo.sopNo = res.sopNo;
   sopInfo.customManagerTypeStr = CUSTOMER_TYPE[crmInfo.value.customType];
 
-  curStep.value = res.currFlowTaskResult.taskName;
-  currFlowTaskResultSetup.value = res.currFlowTaskResult.setup;
-  curStepSetup.value = res.currFlowTaskResult.setup;
   res.flowTaskHistoryList = res.flowTaskHistoryList || [];
   res.flowTaskHistoryList.forEach((item) => {
     item.formProperty.forEach((v) => {
       v.writable = false;
     });
   });
-  allSteps.value = [...res.flowTaskHistoryList, res.currFlowTaskResult];
   tabs.value = [
     ...res.flowTaskHistoryList.map((item) => {
       return {
@@ -218,11 +218,24 @@ const initFill = async () => {
         label: item.taskName,
       };
     }),
-    {
+  ];
+
+  if (res.currFlowTaskResult) {
+    curStep.value = res.currFlowTaskResult.taskName;
+    currFlowTaskResultSetup.value = res.currFlowTaskResult.setup;
+    curStepSetup.value = res.currFlowTaskResult.setup;
+
+    allSteps.value = [...res.flowTaskHistoryList, res.currFlowTaskResult];
+    tabs.value.push({
       value: res.currFlowTaskResult.taskName,
       label: res.currFlowTaskResult.taskName,
-    },
-  ];
+    });
+  } else {
+    allSteps.value = [...res.flowTaskHistoryList];
+    curStepSetup.value = allSteps.value[0].setup;
+    curStep.value = allSteps.value[0].taskName;
+  }
+
   allSteps.value.forEach((item) => {
     item.formProperty.forEach((prop) => {
       prop.value = prop.value ? JSON.parse(prop.value).value : null;
@@ -260,6 +273,11 @@ const curFormConfig = computed(() => {
   if (!stepData) return [];
 
   const formProperty = stepData.formProperty || [];
+  if (IS_VIEW_MODE.value) {
+    formProperty.forEach((item) => {
+      item.writable = false;
+    });
+  }
   return formProperty;
 });
 watch(curFormConfig, (val) => {