From 8a79fe3b46830817e65dc560b40548f7dab2e79a Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期四, 21 八月 2025 11:17:20 +0800
Subject: [PATCH] fix: 签约

---
 src/views/AgreementManage/AgreementManageList.vue |  108 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 85 insertions(+), 23 deletions(-)

diff --git a/src/views/AgreementManage/AgreementManageList.vue b/src/views/AgreementManage/AgreementManageList.vue
index c812998..30c260f 100644
--- a/src/views/AgreementManage/AgreementManageList.vue
+++ b/src/views/AgreementManage/AgreementManageList.vue
@@ -6,10 +6,7 @@
           <QueryFilterItem tip-content="鍒剁増鐘舵��">
             <FieldRadio
               v-model="extraParamState.status"
-              :value-enum="[
-                { label: '宸插畬鎴�', value: 1 },
-                { label: '寰呭埗鐗�', value: 0 },
-              ]"
+              :value-enum="EnumContractTemplateStatusText"
               buttonStyle
               showAllBtn
               @change="getList()"
@@ -17,7 +14,7 @@
           </QueryFilterItem>
           <QueryFilterItem>
             <FieldDatePicker
-              v-model="extraParamState.time"
+              v-model="extraParamState.createdTime"
               type="daterange"
               range-separator="~"
               start-placeholder="璧峰鏃堕棿"
@@ -47,9 +44,20 @@
         :columns="AgreementbManageColumns"
         :operationBtns="operationBtns"
       >
+        <template #code="{ row }">
+          <el-button
+            v-if="row.status === EnumContractTemplateStatus.Completed"
+            link
+            type="primary"
+            @click="handlePreviewQrcode(row)"
+            >鏌ョ湅</el-button
+          >
+          <span v-else></span>
+        </template>
       </ProTableV2>
     </AppContainer>
     <TemplateAddDialog v-bind="dialogProps"></TemplateAddDialog>
+    <QrcodeDialog v-bind="dialogQrcodeProps"></QrcodeDialog>
   </LoadingLayout>
 </template>
 
@@ -70,11 +78,13 @@
   bolePreview,
 } from '@bole-core/components';
 import { AgreementbManageColumns } from './constants';
-import { EnumUserGender } from '@/constants';
-import { downloadFileByUrl } from '@/utils';
+import { EnumContractTemplateStatus, EnumContractTemplateStatusText } from '@/constants';
+import { downloadFileByUrl, format, setOSSLink } from '@/utils';
 import { ModelValueType } from 'element-plus';
-import * as taskServices from '@/services/api/task';
+import * as electronSignServices from '@/services/api/electronSign';
 import TemplateAddDialog from './components/TemplateAddDialog.vue';
+import QrcodeDialog from './components/QrcodeDialog.vue';
+import { Message } from '@bole-core/core';
 
 defineOptions({
   name: 'AgreementManageList',
@@ -89,6 +99,9 @@
     emits: {
       onClick: (role) => handleCheck(role),
     },
+    extraProps: {
+      hide: (row) => row.status !== EnumContractTemplateStatus.Completed,
+    },
   },
   {
     data: {
@@ -98,6 +111,9 @@
     emits: {
       onClick: (role) => handleDownload(role),
     },
+    extraProps: {
+      hide: (row) => row.status !== EnumContractTemplateStatus.Completed,
+    },
   },
   {
     data: {
@@ -106,6 +122,10 @@
     },
     emits: {
       onClick: (role) => handleDelete(role),
+    },
+    props: { type: 'danger' },
+    extraProps: {
+      hide: (row) => row.status !== EnumContractTemplateStatus.Completed,
     },
   },
 ]);
@@ -132,16 +152,19 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetTaskInfosQuery = {
+      let params: API.GetEnterpriseContractTemplatesQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
         keywords: extraParamState.keywords,
+        status: extraParamState.status,
+        createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+        createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
       };
 
-      let res = await taskServices.getTaskInfos(params, {
+      let res = await electronSignServices.getEnterpriseContractTemplates(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -152,12 +175,16 @@
   {
     defaultExtraParams: {
       keywords: '',
-      status: '' as any as EnumUserGender,
-      time: [] as unknown as ModelValueType,
-      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+      status: '' as any as EnumContractTemplateStatus,
+      createdTime: [] as unknown as ModelValueType,
+      orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
     },
-    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
-    columnsRenderProps: {},
+    queryKey: ['electronSignServices/getEnterpriseContractTemplates'],
+    columnsRenderProps: {
+      createdTime: { type: 'date' },
+      completedTime: { type: 'date' },
+      status: { type: 'enum', valueEnum: EnumContractTemplateStatusText },
+    },
   }
 );
 
@@ -169,19 +196,54 @@
   },
 });
 
-async function handleAddOrEdit() {}
-
-function handleDelete(row) {
-  console.log('row: ', row);
+async function handleAddOrEdit() {
+  try {
+    let params: API.SaveContractTemplateCommand = {
+      name: editForm.name,
+      file: editForm.url[0]?.path ?? '',
+    };
+    let res = await electronSignServices.saveContractTemplate(params);
+    if (res) {
+      Message.successMessage('淇濆瓨鎴愬姛');
+      getList();
+    }
+  } catch (error) {}
 }
 
-function handleDownload(row) {
-  downloadFileByUrl('', '妯℃澘');
+async function handleDelete(row: API.GetEnterpriseContractTemplatesQueryResultItem) {
+  try {
+    await Message.deleteMessage();
+    let res = await electronSignServices.setIsDisabledContractTemplate({
+      ids: [row.id],
+      isDisabled: true,
+    });
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
 }
 
-function handleCheck(row) {
+function handleDownload(row: API.GetEnterpriseContractTemplatesQueryResultItem) {
+  downloadFileByUrl(setOSSLink(row.file), '妯℃澘');
+}
+
+function handleCheck(row: API.GetEnterpriseContractTemplatesQueryResultItem) {
   bolePreview({
-    fileUrl: '',
+    fileUrl: setOSSLink(row.file),
+  });
+}
+
+const { dialogProps: dialogQrcodeProps, handleEdit } = useFormDialog({
+  defaultFormParams: {
+    qrcodeUrl: '',
+  },
+});
+
+function handlePreviewQrcode(row: API.GetEnterpriseContractTemplatesQueryResultItem) {
+  handleEdit({
+    // qrcodeUrl: setOSSLink(row.file),
+    qrcodeUrl: 'https://www.baidu.com',
   });
 }
 </script>

--
Gitblit v1.9.1