8
0
ZaiZai 1 سال پیش
والد
کامیت
ee483a2698

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

@@ -167,4 +167,12 @@ export default {
             params: { ids, tabId },
         })
     },
+    //保存默认值
+    async saveDdefual(form) {
+        return HcApi({
+            url: '/api/blade-manager/textdictinfo/save_defaulVal',
+            method: 'post',
+            data: form,
+        })
+    },
 }

+ 3 - 1
src/components/table-form/modules/components.vue

@@ -4,7 +4,7 @@
         :data-x1="x1" :data-x2="x2" :data-y1="y1" :data-y2="y2" :data-tr="trindex" :data-td="tdindex" :data-name="name"
         :data-text="placeholder" :data-type="typeName" :data-rows="rows" :data-format="valueFormat || format" :data-weighing="weighing"
         :data-label="label" :data-value="value" :data-src="src" :data-val="val" :data-contractid="contractid" :data-pkeyid="pkeyid"
-        :data-objs="objsData" :data-multiple="multiple" :data-range="rangeSeparator"
+        :data-objs="objsData" :data-multiple="multiple" :data-range="rangeSeparator" :data-def="deftext" :data-max="maxlength"
     >
         {{ name || placeholder }}
         <div v-if="isSlots" class="slot-content">
@@ -41,6 +41,8 @@ const props = defineProps({
     objs: Array,
     multiple: [Boolean],
     rangeSeparator: [String, Number],
+    deftext: [String, Number],
+    maxlength: [String, Number],
 })
 
 const objsData = ref('')

+ 8 - 2
src/views/project/list/adjust-excel.vue

@@ -13,6 +13,7 @@
                 <HcSetInput v-if="tabsKey === 'tab1'" ref="setInputRef" :info="dataInfo" @finish="getDataApi" />
                 <HcSetEVisa v-if="tabsKey === 'tab2'" ref="setEVisaRef" :info="dataInfo" @finish="getDataApi" />
                 <HcSetFormula v-if="tabsKey === 'tab3'" ref="setFormulaRef" :info="dataInfo" @finish="getDataApi" />
+                <HcSetDefault v-if="tabsKey === 'tab4'" ref="setDefaultRef" :info="dataInfo" @finish="getDataApi" />
             </hc-card>
         </hc-page-split>
     </hc-drawer>
@@ -24,6 +25,7 @@ import { getObjValue, isNullES } from 'js-fast-way'
 import HcSetInput from './adjust-excel/set-input.vue'
 import HcSetEVisa from './adjust-excel/set-e-visa.vue'
 import HcSetFormula from './adjust-excel/set-formula.vue'
+import HcSetDefault from './adjust-excel/set-default.vue'
 import excelApi from '~api/exctab/exceltab'
 
 const props = defineProps({
@@ -60,7 +62,7 @@ const splitOptions = {
 }
 
 //选项卡
-const tabsKey = ref('tab1')
+const tabsKey = ref('tab4')
 const tabsProps = [
     { label: '输入框', value: 'tab1' },
     { label: '电签位置', value: 'tab2' },
@@ -89,11 +91,12 @@ const getDataApi = async () => {
 const setInputRef = ref(null)
 const setEVisaRef = ref(null)
 const setFormulaRef = ref(null)
+const setDefaultRef = ref(null)
 
 //框框被点击
 const keys = [
     'type', 'key', 'tr', 'td', 'index', 'x1', 'y1', 'x2', 'y2', 'name', 'text', 'rows', 'format',
-    'weighing', 'label', 'value', 'src', 'val', 'contractid', 'pkeyid', 'objs', 'range',
+    'weighing', 'label', 'value', 'src', 'val', 'contractid', 'pkeyid', 'objs', 'range', 'def', 'max',
 ]
 const excelClick = async (item) => {
     const dom = item?.target
@@ -107,6 +110,9 @@ const excelClick = async (item) => {
     } else if (tabsKey.value === 'tab2') {
         //电签
         setEVisaRef.value?.setDomData(obj)
+    } else if (tabsKey.value === 'tab4') {
+        //默认信息
+        setDefaultRef.value?.setDomData(obj)
     }
 }
 

+ 139 - 0
src/views/project/list/adjust-excel/set-default.vue

@@ -0,0 +1,139 @@
+<template>
+    <div class="hc-project-list-adjust-excel-set-default">
+        <el-form ref="formRef" :model="formModel" :rules="formRules" label-position="left" label-width="auto">
+            <el-form-item label="元素坐标:" prop="colName">
+                <el-input v-model="formModel.colName" placeholder="请点击左侧表单" disabled />
+            </el-form-item>
+            <el-form-item label="默认信息:" prop="textId">
+                <el-input v-model="formModel.textId" :autosize="{ minRows: 5, maxRows: 5 }" type="textarea" placeholder="请填写默认信息" />
+            </el-form-item>
+        </el-form>
+        <div class="action-btn-box mb-40px mt-10px text-center">
+            <el-button type="success" :loading="submitLoading" @click="dialogSubmit">保存数据</el-button>
+            <el-button type="info" style="margin-left: 50px" @click="resetFormClick">重置</el-button>
+        </div>
+        <hc-card-item title="已配数据:">
+            <hc-table :column="tableColumn" :datas="tableData" :is-current-row="false" :is-index="false">
+                <template #action="{ row }">
+                    <el-link type="danger" @click="rowDelClick(row)">删除</el-link>
+                </template>
+            </hc-table>
+        </hc-card-item>
+    </div>
+</template>
+
+<script setup>
+import { onMounted, ref, watch } from 'vue'
+import { HcDelMsg } from 'hc-vue3-ui'
+import { formValidate, getArrValue, getObjValue } from 'js-fast-way'
+import mainApi from '~api/project/tree'
+
+const props = defineProps({
+    info: {
+        type: Object,
+        default: () => ({}),
+    },
+})
+
+//事件
+const emit = defineEmits(['finish'])
+
+//监听数据
+const dataInfo = ref(props.info)
+watch(() => props.info, (data) => {
+    dataInfo.value = getObjValue(data)
+}, { deep: true })
+
+//渲染完成
+onMounted(() => {
+    formModel.value = {}
+    getSigList()
+})
+
+//基础表单
+const formRef = ref(null)
+const formModel = ref({})
+const formRules = {
+    colName: { required: true, trigger: 'change', message: '请先获取元素坐标' },
+    textId: { required: true, trigger: 'change', message: '请填写默认信息' },
+}
+
+//数据表格
+const tableColumn = [
+    { key: 'colName', name: '元素位置' },
+    { key: 'sigRoleName', name: '默认值' },
+    { key: 'action', name: '操作', align: 'center', width: 100 },
+]
+const tableData = ref([])
+//获取数据
+const getSigList = async () => {
+    const { pkeyId } = dataInfo.value
+    const { data } = await mainApi.getSigList({
+        current: 0,
+        size: 99999,
+        type: 4,
+        tabId: pkeyId,
+    })
+    tableData.value = getArrValue(data?.records)
+}
+
+//删除数据
+const rowDelClick = (row) => {
+    HcDelMsg(async (resolve) => {
+        const { pkeyId } = dataInfo.value
+        const { isRes } = await mainApi.remove(row.id, pkeyId)
+        resolve() //关闭弹窗的回调
+        if (!isRes) return
+        getSigList().then()
+    })
+}
+
+//提交
+const submitLoading = ref(false)
+const dialogSubmit = async () => {
+    const isForm = await formValidate(formRef.value)
+    if (!isForm) return false
+    submitLoading.value = true
+    const { isRes } = await mainApi.saveDdefual(formModel.value)
+    submitLoading.value = false
+    if (!isRes) return
+    window.$message.success('操作成功')
+    emit('finish')
+    getSigList().then()
+}
+
+//重置表单
+const resetFormClick = () => {
+    formModel.value = { type: '4' }
+}
+
+//设置dom数据
+const setDomData = (item) => {
+    const { pkeyId } = dataInfo.value
+    formModel.value = {
+        type: '4',
+        colName: item.text,
+        colKey: item.key,
+        tableId: pkeyId,
+        trIndex: item.tr,
+        tdIndex: item.td,
+        textId: item.def || '',
+    }
+}
+
+//导出函数
+defineExpose({
+    setDomData,
+})
+</script>
+
+<style scoped lang="scss">
+.hc-project-list-adjust-excel-set-default :deep(.hc-card-item-box){
+    padding: 6px 14px 14px;
+    .hc-card-item-header {
+        color: #101010;
+        font-size: 14px;
+        font-weight: unset;
+    }
+}
+</style>