ZaiZai 8 months ago
parent
commit
0c2eaa8798
3 changed files with 163 additions and 2 deletions
  1. 2 1
      src/utils/tools.js
  2. 3 1
      src/views/project/list/adjust-excel.vue
  3. 158 0
      src/views/project/list/set-input.vue

+ 2 - 1
src/utils/tools.js

@@ -53,9 +53,10 @@ export const getDictionaryData = async (code, biz = false) => {
     //处理数据
     let newArr = []
     for (let i = 0; i < res.length; i++) {
+        const val = isNumberReg(res[i]['dictKey']) ? Number(res[i]['dictKey']) : res[i]['dictKey']
         newArr.push({
             label: res[i]['dictValue'],
-            value: Number(res[i]['dictKey']),
+            value: val,
         })
     }
     return newArr

+ 3 - 1
src/views/project/list/adjust-excel.vue

@@ -10,6 +10,7 @@
                 <template #header>
                     <el-segmented v-model="tabsKey" :options="tabsProps" @change="tabsChange" />
                 </template>
+                <HcSetInput v-if="tabsKey === 'tab1'" :info="dataInfo" />
                 其它内容
             </hc-card>
         </hc-page-split>
@@ -19,7 +20,8 @@
 <script setup>
 import { ref, watch } from 'vue'
 import { HcDelMsg } from 'hc-vue3-ui'
-import { getArrValue, getObjValue, isNullES, isString } from 'js-fast-way'
+import { getArrValue, getObjValue, isNullES } from 'js-fast-way'
+import HcSetInput from './set-input.vue'
 import { getDictionaryData } from '~uti/tools'
 import excelApi from '~api/exctab/exceltab'
 import wbsTreeApi from '~api/wbs/tree'

+ 158 - 0
src/views/project/list/set-input.vue

@@ -0,0 +1,158 @@
+<template>
+    <div class="hc-project-list-adjust-excel-set-input">
+        <el-form ref="formRef" :model="formModel" :rules="formRules" label-position="left" label-width="auto">
+            <el-form-item label="元素坐标:" prop="name">
+                <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-option v-for="item in sysTextType" :key="item.value" :label="item.label" :value="item.value" />
+                </el-select>
+            </el-form-item>
+            <el-row :gutter="20">
+                <el-col :span="18">
+                    <el-form-item label="日期格式:" prop="date">
+                        <el-checkbox-group v-model="checkDateList" @change="dateChange">
+                            <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="dateDivide">
+                        <el-select v-model="checkDateDivide" 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 :gutter="20">
+                <el-col :span="18">
+                    <el-form-item label="时间格式:" prop="time">
+                        <el-checkbox-group v-model="checkTimeist" @change="timeChange">
+                            <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="timeDivide">
+                        <el-select v-model="checkTimeDivide" 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>
+        <div class="action-btn-box">
+            <el-button hc-btn type="primary" :loading="submitLoading" @click="dialogSubmit">提交</el-button>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { onMounted, ref, watch } from 'vue'
+import { formValidate, getObjValue } from 'js-fast-way'
+import { getDictionaryData } from '~uti/tools'
+
+const props = defineProps({
+    info: {
+        type: Object,
+        default: () => ({}),
+    },
+})
+
+//事件
+const emit = defineEmits(['finish'])
+
+//监听数据
+const dataInfo = ref(props.info)
+watch(() => props.info, (data) => {
+    dataInfo.value = getObjValue(data)
+}, { immediate: true, deep: true })
+
+//渲染完成
+onMounted(() => {
+    console.log(dataInfo.value)
+    getDataApi()
+})
+
+//获取数据
+const sysTextType = ref([])
+const getDataApi = async () => {
+    sysTextType.value = await getDictionaryData('sys_text_type')
+}
+
+//年月日,时分秒
+const yearList = [{ label:'年', value:'YYYY' }, { label:'月', value:'MM' }, { label:'日', value:'DD' }]
+const timeList = [{ label:'时', value:'HH' }, { label:'分', value:'mm' }, { label:'秒', value:'ss' }]
+
+//年月日
+const checkDateList = ref(['YYYY', 'MM', 'DD'])
+const checkDateDivide = ref('文本')
+const dateChange = () => {
+    console.log(checkDateList.value)
+}
+
+//时分秒
+const checkTimeist = ref(['HH', 'mm', 'ss'])
+const checkTimeDivide = ref('文本')
+const timeChange = () => {
+    console.log(checkTimeist.value)
+}
+
+//基础表单
+const formRef = ref(null)
+const formModel = ref({})
+const formRules = {
+    name: {
+        required: true,
+        trigger: 'blur',
+        message: '请先获取元素坐标',
+    },
+    type: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择文本格式',
+    },
+    date: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择日期格式',
+    },
+    dateDivide: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择日期分割',
+    },
+    time: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择时间格式',
+    },
+    timeDivide: {
+        required: true,
+        trigger: 'blur',
+        message: '请选择时间分割',
+    },
+}
+
+//提交
+const submitLoading = ref(false)
+const dialogSubmit = async () => {
+    /*const isForm = await formValidate(formRef.value)
+    if (!isForm) return false
+    submitLoading.value = true
+    const { isRes } = await mainApi.submitExcelElement(formModel.value)
+    submitLoading.value = false
+    if (!isRes) return
+    window.$message.success('操作成功')
+    emit('finish')*/
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>