e4afe105 by lihua

添加产品上架证明文件

1 parent 3af14033
...@@ -418,11 +418,11 @@ const tableBtnClick = (scope, btn) => { ...@@ -418,11 +418,11 @@ const tableBtnClick = (scope, btn) => {
418 if (res.data) { 418 if (res.data) {
419 approveSuggest.value = ''; 419 approveSuggest.value = '';
420 dynamicPlaceholder.value = '请填写通过理由(选填)'; 420 dynamicPlaceholder.value = '请填写通过理由(选填)';
421 if (listingFormRef.value) { 421 // if (listingFormRef.value) {
422 clearFormValues(listingFormRef.value.formInline); 422 // clearFormValues(listingFormRef.value.formInline);
423 listingFormRef.value.ruleFormRef.clearValidate(formInfo.value.items.map(item => item.field)) 423 // listingFormRef.value.ruleFormRef.clearValidate(formInfo.value.items.map(item => item.field))
424 listingFormRef.value.ruleFormRef.resetFields(formInfo.value.items.map(item => item.field)) 424 // listingFormRef.value.ruleFormRef.resetFields(formInfo.value.items.map(item => item.field))
425 } 425 // }
426 426
427 approveType.value = 'pass'; 427 approveType.value = 'pass';
428 dialogTitle.value = '通过流程' 428 dialogTitle.value = '通过流程'
...@@ -449,11 +449,11 @@ const tableBtnClick = (scope, btn) => { ...@@ -449,11 +449,11 @@ const tableBtnClick = (scope, btn) => {
449 if (res.data) { 449 if (res.data) {
450 approveSuggest.value = ''; 450 approveSuggest.value = '';
451 dynamicPlaceholder.value = '请填写驳回理由(必填)'; 451 dynamicPlaceholder.value = '请填写驳回理由(必填)';
452 if (listingFormRef.value) { 452 // if (listingFormRef.value) {
453 clearFormValues(listingFormRef.value.formInline); 453 // clearFormValues(listingFormRef.value.formInline);
454 listingFormRef.value.ruleFormRef.clearValidate(formInfo.value.items.map(item => item.field)) 454 // listingFormRef.value.ruleFormRef.clearValidate(formInfo.value.items.map(item => item.field))
455 listingFormRef.value.ruleFormRef.resetFields(formInfo.value.items.map(item => item.field)) 455 // listingFormRef.value.ruleFormRef.resetFields(formInfo.value.items.map(item => item.field))
456 } 456 // }
457 approveType.value = 'reject'; 457 approveType.value = 'reject';
458 dialogTitle.value = '驳回流程' 458 dialogTitle.value = '驳回流程'
459 dialogVisible.value = true; 459 dialogVisible.value = true;
...@@ -521,23 +521,13 @@ const clearFormValues = (formInline) => { ...@@ -521,23 +521,13 @@ const clearFormValues = (formInline) => {
521 const dynamicPlaceholder = ref('请填写通过理由(选填)'); 521 const dynamicPlaceholder = ref('请填写通过理由(选填)');
522 const passSubmit = () => { 522 const passSubmit = () => {
523 let row = currTableData.value 523 let row = currTableData.value
524 listingFormRef.value.ruleFormRef.validate().then((valid) => {
525 if (valid) {
526 let complianceInfoMap = {}
527 formInfo.value.items.forEach((item) => {
528 assetsSafeInfo.value.forEach((item1) => {
529 if (item.label == item1.label) {
530 complianceInfoMap[item1.value] = listingFormRef.value.formInline[item.field];
531 }
532 })
533 })
534 dialogBtnLoading.value = true; 524 dialogBtnLoading.value = true;
535 productRejectFlowData({ 525 productRejectFlowData({
536 guid: row.approveVO.approveGuid, 526 guid: row.approveVO.approveGuid,
537 flowType: row.approveVO.flowType, 527 flowType: row.approveVO.flowType,
538 approveSuggest: approveSuggest.value, 528 approveSuggest: approveSuggest.value,
539 approveStaffGuid: userData.staffGuid, 529 approveStaffGuid: userData.staffGuid,
540 complianceInfoMap: complianceInfoMap, 530 complianceInfoMap: {},
541 approveState: 'Y', 531 approveState: 'Y',
542 bizGuid: row.approveVO.bizGuid 532 bizGuid: row.approveVO.bizGuid
543 }, row.tenantGuid).then((res: any) => { 533 }, row.tenantGuid).then((res: any) => {
...@@ -551,32 +541,18 @@ const passSubmit = () => { ...@@ -551,32 +541,18 @@ const passSubmit = () => {
551 ElMessage.error(res.msg) 541 ElMessage.error(res.msg)
552 } 542 }
553 }) 543 })
554 }
555 })
556
557 } 544 }
558 const listingFormRef = ref<any>(); 545 const listingFormRef = ref<any>();
559 const rejectSubmit = async () => { 546 const rejectSubmit = async () => {
560 if (!approveSuggest.value) return ElMessage.error('请填写驳回理由!') 547 if (!approveSuggest.value) return ElMessage.error('请填写驳回理由!')
561 let row = currTableData.value 548 let row = currTableData.value
562 console.log(row, '--------')
563 listingFormRef.value.ruleFormRef.validate().then((valid) => {
564 if (valid) {
565 let complianceInfoMap = {}
566 formInfo.value.items.forEach((item) => {
567 assetsSafeInfo.value.forEach((item1) => {
568 if (item.label == item1.label) {
569 complianceInfoMap[item1.value] = listingFormRef.value.formInline[item.field];
570 }
571 })
572 })
573 dialogBtnLoading.value = true; 549 dialogBtnLoading.value = true;
574 productRejectFlowData({ 550 productRejectFlowData({
575 guid: row.approveVO.approveGuid, 551 guid: row.approveVO.approveGuid,
576 flowType: row.approveVO.flowType, 552 flowType: row.approveVO.flowType,
577 approveSuggest: approveSuggest.value, 553 approveSuggest: approveSuggest.value,
578 approveStaffGuid: userData.staffGuid, 554 approveStaffGuid: userData.staffGuid,
579 complianceInfoMap: complianceInfoMap, 555 complianceInfoMap: {},
580 bizGuid: row.approveVO.bizGuid, 556 bizGuid: row.approveVO.bizGuid,
581 approveState: 'R' 557 approveState: 'R'
582 }, row.tenantGuid).then((res: any) => { 558 }, row.tenantGuid).then((res: any) => {
...@@ -590,8 +566,6 @@ const rejectSubmit = async () => { ...@@ -590,8 +566,6 @@ const rejectSubmit = async () => {
590 ElMessage.error(res.msg) 566 ElMessage.error(res.msg)
591 } 567 }
592 }) 568 })
593 }
594 })
595 } 569 }
596 570
597 const tablePageChange = (info) => { 571 const tablePageChange = (info) => {
...@@ -666,119 +640,6 @@ const cardBtnClick = (item) => { ...@@ -666,119 +640,6 @@ const cardBtnClick = (item) => {
666 getTableData(item.exchangeGuid); 640 getTableData(item.exchangeGuid);
667 } 641 }
668 642
669 const formInfo = ref<any>({
670 id: 'check-form',
671 col: 'col2',
672 items: [
673 // radio 单选框
674 {
675 type: 'radio-group',
676 label: '是否遵守隐私法律和数据保护法规',
677 field: 'isPublicData1',
678 default: '',
679 required: true,
680 options: [
681 { label: '是', value: 'Y' },
682 { label: '否', value: 'N' },
683 ],
684 },
685 // radio 单选框
686 {
687 type: 'radio-group',
688 label: '不存在侵犯他人版权的信息',
689 field: 'isPublicData2',
690 default: '',
691 required: true,
692 options: [
693 { label: '是', value: 'Y' },
694 { label: '否', value: 'N' },
695 ],
696 },
697 // 是否符合研究伦理
698 {
699 type: 'radio-group',
700 label: '是否符合研究伦理',
701 field: 'isPublicData3',
702 default: '',
703 required: true,
704 options: [
705 { label: '是', value: 'Y' },
706 { label: '否', value: 'N' },
707 ],
708 },
709 //是否遵守道德标准
710 {
711 type: 'radio-group',
712 label: '是否遵守道德标准',
713 field: 'isPublicData4',
714 default: '',
715 required: true,
716 options: [
717 { label: '是', value: 'Y' },
718 { label: '否', value: 'N' },
719 ],
720 },
721 //数据来源是否合规
722 {
723 type: 'radio-group',
724 label: '数据来源是否合规',
725 field: 'isPublicData5',
726 default: '',
727 required: true,
728 options: [
729 { label: '是', value: 'Y' },
730 { label: '否', value: 'N' },
731 ],
732 },
733 //相关文档审查是否合规
734 {
735 type: 'radio-group',
736 label: '相关文档审查是否合规',
737 field: 'isPublicData6',
738 default: '',
739 required: true,
740 options: [
741 { label: '是', value: 'Y' },
742 { label: '否', value: 'N' },
743 ],
744 },
745 //是否符合国家标准及要求
746 {
747 type: 'radio-group',
748 label: '是否符合国家标准及要求',
749 field: 'isPublicData7',
750 default: '',
751 required: true,
752 options: [
753 { label: '是', value: 'Y' },
754 { label: '否', value: 'N' },
755 ],
756 },
757 //数据内容是否合规
758 {
759 type: 'radio-group',
760 label: '数据内容是否合规',
761 field: 'isPublicData8',
762 default: '',
763 required: true,
764 options: [
765 { label: '是', value: 'Y' },
766 { label: '否', value: 'N' },
767 ],
768 },
769 ],
770 rules: {
771 isPublicData1: [{ required: true, message: '请选择是否遵守隐私法律和数据保护法规', trigger: 'change' }],
772 isPublicData2: [{ required: true, message: '请选择是否存在侵犯他人版权的信息', trigger: 'change' }],
773 isPublicData3: [{ required: true, message: '请选择是否符合研究伦理', trigger: 'change' }],
774 isPublicData4: [{ required: true, message: '请选择是否遵守道德标准', trigger: 'change' }],
775 isPublicData5: [{ required: true, message: '请选择数据来源是否合规', trigger: 'change' }],
776 isPublicData6: [{ required: true, message: '请选择相关文档审查是否合规', trigger: 'change' }],
777 isPublicData7: [{ required: true, message: '请选择是否符合国家标准及要求', trigger: 'change' }],
778 isPublicData8: [{ required: true, message: '请选择数据内容是否合规', trigger: 'change' }],
779 }
780 })
781
782 const passCommonDialogInfo = ref({ 643 const passCommonDialogInfo = ref({
783 visible: false, 644 visible: false,
784 size: 460, 645 size: 460,
......
...@@ -704,9 +704,9 @@ const getProductDetail = async () => { ...@@ -704,9 +704,9 @@ const getProductDetail = async () => {
704 // if (res.data.commitmentLetter && res.data.commitmentLetter.length) { 704 // if (res.data.commitmentLetter && res.data.commitmentLetter.length) {
705 // flowDetail.value.commitmentLetter = { name: res.data.commitmentLetter[0].name, url: res.data.commitmentLetter[0].url } 705 // flowDetail.value.commitmentLetter = { name: res.data.commitmentLetter[0].name, url: res.data.commitmentLetter[0].url }
706 // } 706 // }
707 if (res.data.accreditFile && res.data.accreditFile.length) { 707 // if (res.data.accreditFile && res.data.accreditFile.length) {
708 flowDetail.value.accreditFile = { name: res.data.accreditFile[0].name, url: res.data.accreditFile[0].url } 708 // flowDetail.value.accreditFile = { name: res.data.accreditFile[0].name, url: res.data.accreditFile[0].url }
709 } 709 // }
710 // if (res.data.productDetail && res.data.productDetail.length) { 710 // if (res.data.productDetail && res.data.productDetail.length) {
711 // flowDetail.value.productDetail = { name: res.data.productDetail[0].name, url: res.data.productDetail[0].url } 711 // flowDetail.value.productDetail = { name: res.data.productDetail[0].name, url: res.data.productDetail[0].url }
712 // } 712 // }
...@@ -790,13 +790,28 @@ const submitForm = (btn, formEl, tosub = false) => { ...@@ -790,13 +790,28 @@ const submitForm = (btn, formEl, tosub = false) => {
790 delete params.productImgList; 790 delete params.productImgList;
791 params.coverageArea = subForm.value.coverageAreas == 'Y' ? [['all']] : subForm.value.coverageArea; 791 params.coverageArea = subForm.value.coverageAreas == 'Y' ? [['all']] : subForm.value.coverageArea;
792 params.productPic = subForm.value.productImg.length ? { name: subForm.value.productImg[0].name, url: subForm.value.productImg[0].url } : {}; 792 params.productPic = subForm.value.productImg.length ? { name: subForm.value.productImg[0].name, url: subForm.value.productImg[0].url } : {};
793 console.log(params, formInfo.value.items.at(3).defaultValue, formInfo.value, '-----------------'); 793 params.accreditFile = params.accreditFileInfo.length ? [{
794 url: params.accreditFileInfo[0].url,
795 name: params.accreditFileInfo[0].name
796 }] : '';
797 params.commitmentLetter = params.commitmentLetterInfo.length ? [{
798 url: params.commitmentLetterInfo[0].url,
799 name: params.commitmentLetterInfo[0].name
800 }] : [];
801 params.productDetail = params.productDetailInfo.length ? [{
802 url: params.productDetailInfo[0].url,
803 name: params.productDetailInfo[0].name
804 }] : [];
805 // console.log(params, formInfo.value.items.at(3).defaultValue, formInfo.value, '-----------------');
794 params.caseNumber = parseInt(params.caseNumber.replace(/,/g, ''), 10), 806 params.caseNumber = parseInt(params.caseNumber.replace(/,/g, ''), 10),
795 params.dataScale = parseInt(params.dataScale.replace(/,/g, ''), 10), 807 params.dataScale = parseInt(params.dataScale.replace(/,/g, ''), 10),
796 params.timeAreaStart = params.dateRange ? params.dateRange[0] : ''; 808 params.timeAreaStart = params.dateRange ? params.dateRange[0] : '';
797 params.timeAreaEnd = params.dateRange ? params.dateRange[1] : ''; 809 params.timeAreaEnd = params.dateRange ? params.dateRange[1] : '';
798 // 删除dateRange字段 810 // 删除dateRange字段
799 delete params.dateRange; 811 delete params.dateRange;
812 delete params.accreditFileInfo;
813 delete params.commitmentLetterInfo;
814 delete params.productDetailInfo;
800 params.foundMode = currProductInfo.value?.foundMode || flowDetail.value.foundMode; 815 params.foundMode = currProductInfo.value?.foundMode || flowDetail.value.foundMode;
801 params.productCode = currProductInfo.value?.productCode || flowDetail.value.productCode; 816 params.productCode = currProductInfo.value?.productCode || flowDetail.value.productCode;
802 flowDetailLoading.value = true; 817 flowDetailLoading.value = true;
...@@ -2010,6 +2025,122 @@ const viewProductDetail = () => { ...@@ -2010,6 +2025,122 @@ const viewProductDetail = () => {
2010 <span class="item_value">--</span> 2025 <span class="item_value">--</span>
2011 </div> 2026 </div>
2012 </div> 2027 </div>
2028
2029 <div class="list_item is_block">
2030 <div class="file_item" >
2031 <span class="item_label">承诺函:</span>
2032 <span class="item_value">
2033 <div class="file-operate">
2034 <template v-if="flowDetail?.commitmentLetter?.length > 0">
2035 <template
2036 v-if="flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'">
2037 <img class="file-img" src="../../assets/images/PDF.png" />
2038 </template>
2039 <template
2040 v-else-if="flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'">
2041 <img class="file-img" src="../../assets/images/png.png" />
2042 </template>
2043 <template
2044 v-else-if="['jpg', 'jpeg'].includes(flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase())">
2045 <img class="file-img" src="../../assets/images/jpg.png" />
2046 </template>
2047 <div class="file-name"><ellipsis-tooltip :content="flowDetail.commitmentLetter[0].name ?? ''"
2048 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
2049 <div
2050 v-if="['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.commitmentLetter[0].name?.substring(flowDetail.commitmentLetter[0].name.lastIndexOf('.') + 1).toLowerCase())"
2051 :style="{ right: '36px' }" class="file-preview"
2052 @click="onUploadFilePreview(flowDetail.commitmentLetter[0])">
2053 查看
2054 </div>
2055 <div :style="{ right: '0px' }" class="file-preview"
2056 @click="onUploadFileDownload(flowDetail.commitmentLetter[0])">
2057 下载
2058 </div>
2059 </template>
2060 <template v-else>
2061 --
2062 </template>
2063 </div>
2064 </span>
2065 </div>
2066 </div>
2067 <div class="list_item is_block">
2068 <div class="file_item" >
2069 <span class="item_label">授权文件:</span>
2070 <span class="item_value">
2071 <div class="file-operate">
2072 <template v-if="flowDetail?.accreditFile?.length > 0">
2073 <template
2074 v-if="flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'">
2075 <img class="file-img" src="../../assets/images/PDF.png" />
2076 </template>
2077 <template
2078 v-else-if="flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'">
2079 <img class="file-img" src="../../assets/images/png.png" />
2080 </template>
2081 <template
2082 v-else-if="['jpg', 'jpeg'].includes(flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase())">
2083 <img class="file-img" src="../../assets/images/jpg.png" />
2084 </template>
2085 <div class="file-name"><ellipsis-tooltip :content="flowDetail.accreditFile[0].name ?? ''"
2086 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
2087 <div
2088 v-if="['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.accreditFile[0].name?.substring(flowDetail.accreditFile[0].name.lastIndexOf('.') + 1).toLowerCase())"
2089 :style="{ right: '36px' }" class="file-preview"
2090 @click="onUploadFilePreview(flowDetail.accreditFile[0])">
2091 查看
2092 </div>
2093 <div :style="{ right: '0px' }" class="file-preview"
2094 @click="onUploadFileDownload(flowDetail.accreditFile[0])">
2095 下载
2096 </div>
2097 </template>
2098 <template v-else>
2099 --
2100 </template>
2101 </div>
2102 </span>
2103 </div>
2104 </div>
2105 <div class="list_item is_block" v-if="flowDetail?.productDetail?.length > 0">
2106 <div class="file_item">
2107 <span class="item_label">其它证明文件:</span>
2108 <span class="item_value">
2109 <div class="file-operate">
2110 <template v-if="flowDetail?.productDetail?.length > 0">
2111 <template
2112 v-if="flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase() === 'pdf'">
2113 <img class="file-img" src="../../assets/images/PDF.png" />
2114 </template>
2115 <template
2116 v-else-if="flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase() === 'png'">
2117 <img class="file-img" src="../../assets/images/png.png" />
2118 </template>
2119 <template
2120 v-else-if="['jpg', 'jpeg'].includes(flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase())">
2121 <img class="file-img" src="../../assets/images/jpg.png" />
2122 </template>
2123 <div class="file-name"><ellipsis-tooltip :content="flowDetail.productDetail[0].name ?? ''"
2124 class-name="w100f" refName="tooltipOver"></ellipsis-tooltip></div>
2125 <div
2126 v-if="['pdf', 'png', 'jpg', 'jpeg'].includes(flowDetail.productDetail[0].name?.substring(flowDetail.productDetail[0].name.lastIndexOf('.') + 1).toLowerCase())"
2127 :style="{ right: '36px' }" class="file-preview"
2128 @click="onUploadFilePreview(flowDetail.productDetail[0])">
2129 查看
2130 </div>
2131 <div :style="{ right: '0px' }" class="file-preview"
2132 @click="onUploadFileDownload(flowDetail.productDetail[0])">
2133 下载
2134 </div>
2135 </template>
2136 <template v-else>
2137 --
2138 </template>
2139 </div>
2140 </span>
2141 </div>
2142 </div>
2143
2013 </div> 2144 </div>
2014 </div> 2145 </div>
2015 </div> 2146 </div>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!