ZaiZai hai 1 ano
pai
achega
6d560f6623

+ 8 - 0
src/api/modules/project/tree.js

@@ -113,4 +113,12 @@ export default {
             params: form,
         })
     },
+    //电签 -- 获取签章类型
+    async findPfxType(form = {}) {
+        return HcApi({
+            url: '/api/blade-business/task/query-task-type-status',
+            method: 'get',
+            params: form,
+        })
+    },
 }

+ 66 - 55
src/views/project/list/adjust-excel/set-e-visa.vue

@@ -5,7 +5,7 @@
                 <el-input v-model="formModel.name" placeholder="请点击左侧表单" disabled />
             </el-form-item>
             <el-form-item label="证书类型:" prop="type">
-                <el-select v-model="formModel.type" filterable block placeholder="请选择证书类型">
+                <el-select v-model="formModel.type" filterable block placeholder="请选择证书类型" @change="signTypeChang">
                     <el-option label="个人证书" :value="2" />
                     <el-option label="企业证书" :value="6" />
                 </el-select>
@@ -16,54 +16,34 @@
                         <el-option v-for="item in roleType" :key="item.value" :label="item.label" :value="item.value" />
                     </el-select>
                 </el-form-item>
-                <el-form-item label="签字角色:" prop="role">
-                    <el-select v-model="formModelRole" filterable block placeholder="请选择签字角色">
-                        <el-option v-for="item in roleData" :key="item.value" :label="item.label" :value="item" />
+                <el-form-item label="签字角色:" prop="sigRoleId">
+                    <el-select v-model="formModel.sigRoleId" filterable block placeholder="请选择签字角色">
+                        <el-option v-for="item in roleData" :key="item.value" :label="item.label" :value="item.value" />
                     </el-select>
                 </el-form-item>
+                <el-form-item label="签字时间:">
+                    <el-checkbox v-model="formModel.timeState" :true-value="1" :false-value="2">是否需要获取签字时间</el-checkbox>
+                </el-form-item>
+                <el-form-item v-if="formModel.timeState === 1" label="时间元素:" prop="timeName" class="time-name-form-item">
+                    <el-input v-model="formModel.timeName" placeholder="请点击后,再在左边选择元素" @focus="timeElementFocus">
+                        <template #append>
+                            <el-button type="primary" :disabled="!isTimeElement" @click="timeElementFinish">完成</el-button>
+                        </template>
+                    </el-input>
+                </el-form-item>
             </template>
-            <el-row v-if="formModel.textId === 'date' || formModel.textId === 'daterange'" :gutter="20">
-                <el-col :span="18">
-                    <el-form-item label="日期格式:" prop="date">
-                        <el-checkbox-group v-model="formModel.date">
-                            <el-checkbox v-for="item in yearList" :key="item.value" :value="item.value">{{ item.label }}</el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="" prop="divide_y">
-                        <el-select v-model="formModel.divide_y" block placeholder="选择分隔符">
-                            <el-option label="文本" value="文本" />
-                            <el-option label="-" value="-" />
-                            <el-option label="/" value="/" />
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-row v-if="formModel.textId === 'date' || formModel.textId === 'daterange'" :gutter="20">
-                <el-col :span="18">
-                    <el-form-item label="时间格式:" prop="time">
-                        <el-checkbox-group v-model="formModel.time">
-                            <el-checkbox v-for="item in timeList" :key="item.value" :value="item.value">{{ item.label }}</el-checkbox>
-                        </el-checkbox-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="" prop="divide_h">
-                        <el-select v-model="formModel.divide_h" block placeholder="选择分隔符">
-                            <el-option label="文本" value="文本" />
-                            <el-option label=":" value=":" />
-                            <el-option label="/" value="/" />
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-form-item v-if="formModel.textId === 'daterange'" label="中间分隔符:" prop="divide_c">
-                <el-select v-model="formModel.divide_c" block placeholder="选择中间分隔符">
-                    <el-option label="至" value="至" />
-                    <el-option label="-" value="-" />
-                    <el-option label="~" value="~" />
-                </el-select>
+            <template v-else>
+                <el-form-item label="签章类型:" prop="sigRoleId">
+                    <el-select v-model="formModel.sigRoleId" filterable block placeholder="请选择签章类型">
+                        <el-option v-for="item in signData" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
+                    </el-select>
+                </el-form-item>
+            </template>
+            <el-form-item label="偏移位X:" prop="pyzbx">
+                <el-input v-model="formModel.pyzbx" type="number" placeholder="横坐标,负代表左移,正代表右移,偏移量50大概等于一厘米" />
+            </el-form-item>
+            <el-form-item label="偏移位Y:" prop="pyzby">
+                <el-input v-model="formModel.pyzby" type="number" placeholder="纵坐标,负代表下移,正代表上移,偏移量50大概等于一厘米" />
             </el-form-item>
         </el-form>
         <hc-card-item v-if="['select', 'radio', 'checkbox', 'selectBox'].indexOf(formModel.textId) !== -1" title="相关数据:">
@@ -113,15 +93,8 @@ watch(() => props.info, (data) => {
 //渲染完成
 onMounted(() => {
     getRoleTypeData()
-    getDataApi()
 })
 
-//获取数据
-const sysTextType = ref([])
-const getDataApi = async () => {
-    sysTextType.value = await getDictionaryData('sys_text_type')
-}
-
 //获取所属方
 const roleType = ref([])
 const getRoleTypeData = async () => {
@@ -130,10 +103,9 @@ const getRoleTypeData = async () => {
 }
 
 //获取签字角色
-const formModelRole = ref({})
 const roleData = ref([])
 const getRoleData = async () => {
-    formModelRole.value = {}
+    formModel.value.sigRoleId = ''
     const { roleType } = formModel.value
     if (isNullES(roleType)) {
         roleData.value = []
@@ -143,6 +115,32 @@ const getRoleData = async () => {
     roleData.value = getArrValue(data)
 }
 
+//获取签章类型
+const signData = ref([])
+const getSignData = async () => {
+    const { data } = await mainApi.findPfxType({ typeOrStatus: 'pfx_type' })
+    signData.value = getArrValue(data)
+}
+
+//证书类型
+const signTypeChang = () => {
+    const { type } = formModel.value
+    if (type === 6) {
+        getSignData()
+    }
+    formModel.value.sigRoleId = ''
+}
+
+//时间元素
+const isTimeElement = ref(false)
+const timeElementFocus = () => {
+    isTimeElement.value = true
+}
+const timeElementFinish = () => {
+    isTimeElement.value = false
+}
+
+
 //年月日,时分秒
 const yearList = [{ label:'年', value:'YYYY', sort: 1 }, { label:'月', value:'MM', sort: 2 }, { label:'日', value:'DD', sort: 3 }]
 const timeList = [{ label:'时', value:'HH', sort: 4 }, { label:'分', value:'mm', sort: 5 }, { label:'秒', value:'ss', sort: 6 }]
@@ -391,4 +389,17 @@ defineExpose({
         font-weight: unset;
     }
 }
+.hc-project-list-adjust-excel-set-e-visa :deep(.time-name-form-item) .el-form-item__content .el-input .el-input-group__append {
+    .el-button {
+        background-color: var(--el-button-bg-color);
+        border-color: var(--el-button-border-color);
+        color: var(--el-button-text-color);
+        border-radius: 0 var(--el-border-radius-base) var(--el-border-radius-base) 0;
+    }
+    .el-button.is-disabled {
+        background-color: var(--el-button-disabled-bg-color);
+        border-color: var(--el-button-disabled-border-color);
+        color: var(--el-button-disabled-text-color);
+    }
+}
 </style>