|
@@ -80,6 +80,64 @@
|
|
|
@change="itemValueChange"
|
|
|
></dynamic-form-item>
|
|
|
</t-col>
|
|
|
+ <t-col
|
|
|
+ :span="11"
|
|
|
+ v-if="
|
|
|
+ curStepData.taskKey == 'f_usertask_quality_problem_check_3' ||
|
|
|
+ curStepData.taskKey ==
|
|
|
+ 'f_usertask_quality_problem_third_check_4'
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div class="form-group-title m-l-15px m-b-10px">{{
|
|
|
+ `历史${
|
|
|
+ curStepData.taskKey == 'f_usertask_quality_problem_check_3'
|
|
|
+ ? '甲'
|
|
|
+ : '乙'
|
|
|
+ }方复核意见:`
|
|
|
+ }}</div>
|
|
|
+ <div class="history-box m-l-15px">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in flowFormSuggestionResultList"
|
|
|
+ :key="index"
|
|
|
+ class="history-item flex items-center"
|
|
|
+ >
|
|
|
+ <div class="left-info">
|
|
|
+ <div class="left-head flex justify-between items-center">
|
|
|
+ <div class="flex items-center h-full">
|
|
|
+ <span class="u-name">{{ item.approveUserName }}</span>
|
|
|
+ <t-tag
|
|
|
+ v-if="item.approveOperation == '同意'"
|
|
|
+ theme="success"
|
|
|
+ variant="light"
|
|
|
+ >同意</t-tag
|
|
|
+ >
|
|
|
+ <t-tag v-else theme="danger" variant="light"
|
|
|
+ >不同意</t-tag
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="time">{{
|
|
|
+ dateFormat(item.createTime, 'yyyy-MM-dd HH:mm')
|
|
|
+ }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="left-body">
|
|
|
+ <div class="label">初审意见:</div>
|
|
|
+ <div class="content">
|
|
|
+ {{ item.approveFormSuggestion }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="img-box">
|
|
|
+ <div class="img-wrap">
|
|
|
+ <image-view
|
|
|
+ :width="46"
|
|
|
+ :height="46"
|
|
|
+ :images="[item.approveFormSign]"
|
|
|
+ ></image-view>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </t-col>
|
|
|
</t-row>
|
|
|
</t-form>
|
|
|
<t-space v-if="showAction" class="sop-step-footer">
|
|
@@ -163,9 +221,8 @@ import { flowFormPropertiesApi, sopFlowViewApi } from '@/api/sop';
|
|
|
import { MessagePlugin } from 'tdesign-vue-next';
|
|
|
import DynamicFormItem from '../../components/dynamic-form-item/index.vue';
|
|
|
import { CUSTOMER_TYPE } from '@/config/constants';
|
|
|
-import { timeNumberToText } from '@/utils/tool';
|
|
|
+import { timeNumberToText, dateFormat } from '@/utils/tool';
|
|
|
import { timestampFilter } from '@/utils/filter';
|
|
|
-
|
|
|
const props = defineProps({
|
|
|
sop: {
|
|
|
type: Object,
|
|
@@ -218,7 +275,13 @@ const sopInfo = reactive({
|
|
|
crmName: props.sop.crmName,
|
|
|
statusStr: props.sop.statusStr,
|
|
|
});
|
|
|
-
|
|
|
+const flowFormSuggestionJiaResultList = ref([]);
|
|
|
+const flowFormSuggestionYiResultList = ref([]);
|
|
|
+const flowFormSuggestionResultList = computed(() => {
|
|
|
+ return curStepData.taskKey == 'f_usertask_quality_problem_check_3'
|
|
|
+ ? flowFormSuggestionJiaResultList.value
|
|
|
+ : flowFormSuggestionYiResultList.value;
|
|
|
+});
|
|
|
const needValueCodes = [
|
|
|
'NUMBER', //新增
|
|
|
'TEXT',
|
|
@@ -286,6 +349,10 @@ const initFill = async () => {
|
|
|
sopInfo.serviceName = crmInfo.value.serviceUnitName;
|
|
|
sopInfo.sopNo = res.sopNo;
|
|
|
sopInfo.customManagerTypeStr = CUSTOMER_TYPE[crmInfo.value.customType];
|
|
|
+ flowFormSuggestionJiaResultList.value =
|
|
|
+ res.flowFormSuggestionJiaResultList || [];
|
|
|
+ flowFormSuggestionYiResultList.value =
|
|
|
+ res.flowFormSuggestionYiResultList || [];
|
|
|
|
|
|
res.flowTaskHistoryList = res.flowTaskHistoryList || [];
|
|
|
res.flowTaskHistoryList.forEach((item) => {
|
|
@@ -469,4 +536,61 @@ const submitHandle = async (flowApprove = 'START') => {
|
|
|
const cancelHandle = () => {
|
|
|
emit('cancel');
|
|
|
};
|
|
|
+const curStepData = computed(
|
|
|
+ () => allSteps.value.find((item) => item.taskName === curStep.value) || {}
|
|
|
+);
|
|
|
</script>
|
|
|
+<style lang="less" scoped>
|
|
|
+.history-box {
|
|
|
+ border: 1px solid #e5e5e5;
|
|
|
+ border-radius: 4px;
|
|
|
+ padding: 4px 15px;
|
|
|
+ .history-item {
|
|
|
+ width: 100%;
|
|
|
+ padding: 8px 0;
|
|
|
+ &:not(:last-child) {
|
|
|
+ border-bottom: 1px solid #e5e5e5;
|
|
|
+ }
|
|
|
+ .left-info {
|
|
|
+ width: calc(100% - 75px);
|
|
|
+ .left-head {
|
|
|
+ height: 26px;
|
|
|
+ .u-name {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #262626;
|
|
|
+ font-weight: 500;
|
|
|
+ margin-right: 12px;
|
|
|
+ }
|
|
|
+ .time {
|
|
|
+ color: #8c8c8c;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .left-body {
|
|
|
+ padding: 6px 0;
|
|
|
+ display: flex;
|
|
|
+ .label {
|
|
|
+ color: #595959;
|
|
|
+ width: 70px;
|
|
|
+ }
|
|
|
+ .content {
|
|
|
+ width: calc(100% - 70px);
|
|
|
+ color: #262626;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .img-box {
|
|
|
+ padding: 5px 0 5px 20px;
|
|
|
+ .img-wrap {
|
|
|
+ width: 52px;
|
|
|
+ height: 52px;
|
|
|
+ border-radius: 4px;
|
|
|
+ border: 1px solid #e5e5e5;
|
|
|
+ background-color: #f0f0f0;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|