|
@@ -59,16 +59,18 @@
|
|
|
type="primary"
|
|
|
:loading="submitLoading"
|
|
|
@click="dialogSubmit"
|
|
|
- >提交</el-button
|
|
|
>
|
|
|
+ 提交
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
</hc-dialog>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { ref, watch } from "vue";
|
|
|
-import { deepClone, getArrValue, isNullES } from "js-fast-way";
|
|
|
-import excelApi from "~api/exctab/exceltab";
|
|
|
+import { ref, watch } from 'vue'
|
|
|
+import { deepClone, getArrValue, isNullES } from 'js-fast-way'
|
|
|
+import excelApi from '~api/exctab/exceltab'
|
|
|
+import testApi from '~api/desk/test-collect'
|
|
|
|
|
|
const props = defineProps({
|
|
|
info: {
|
|
@@ -77,177 +79,195 @@ const props = defineProps({
|
|
|
},
|
|
|
type: {
|
|
|
type: [String, Number],
|
|
|
- default: "", //默认没有,独立表单库类型为2
|
|
|
+ default: '', //默认没有,独立表单库类型为2,试验关联清表3
|
|
|
},
|
|
|
-});
|
|
|
+})
|
|
|
|
|
|
//事件
|
|
|
-const emit = defineEmits(["change", "close"]);
|
|
|
+const emit = defineEmits(['change', 'close'])
|
|
|
|
|
|
//双向绑定
|
|
|
// eslint-disable-next-line no-undef
|
|
|
-const isShow = defineModel("modelValue", {
|
|
|
+const isShow = defineModel('modelValue', {
|
|
|
default: false,
|
|
|
-});
|
|
|
+})
|
|
|
|
|
|
//监听数据
|
|
|
-const rows = ref(props.info);
|
|
|
-const type = ref(props.type);
|
|
|
+const rows = ref(props.info)
|
|
|
+const type = ref(props.type)
|
|
|
|
|
|
watch(
|
|
|
() => [props.info, props.type],
|
|
|
([info, tpe]) => {
|
|
|
- rows.value = info;
|
|
|
- type.value = tpe;
|
|
|
+ rows.value = info
|
|
|
+ type.value = tpe
|
|
|
},
|
|
|
- { deep: true }
|
|
|
-);
|
|
|
+ { deep: true },
|
|
|
+)
|
|
|
|
|
|
//监听显示
|
|
|
watch(isShow, (val) => {
|
|
|
if (val) {
|
|
|
- getDataInfo();
|
|
|
+ getDataInfo()
|
|
|
} else {
|
|
|
- emit("close");
|
|
|
+ emit('close')
|
|
|
}
|
|
|
-});
|
|
|
+})
|
|
|
|
|
|
//表单
|
|
|
-const formRef = ref(null);
|
|
|
-const formModel = ref({});
|
|
|
+const formRef = ref(null)
|
|
|
+const formModel = ref({})
|
|
|
const getDataInfo = () => {
|
|
|
- const form = deepClone(rows.value);
|
|
|
- getExcelListData();
|
|
|
+ const form = deepClone(rows.value)
|
|
|
+ getExcelListData()
|
|
|
formModel.value = {
|
|
|
id: type.value === 2 ? form.primaryKeyId : form.pkeyId,
|
|
|
ids: form.id,
|
|
|
- excelId: type.value === 2 ? form.excelIds : form.excelId,
|
|
|
- name: form.modeId,
|
|
|
+ excelId: type.value === 2 ? form.excelIds : type.value === 3 ? rows.value.excelId : form.excelId,
|
|
|
initTableId: form.initTableId,
|
|
|
initTableName: form.initTableName,
|
|
|
- };
|
|
|
+ }
|
|
|
setTimeout(() => {
|
|
|
- const arr = formModel.value.excelId.split(",");
|
|
|
- treeRef.value?.setCheckedKeys(arr);
|
|
|
- }, 2000);
|
|
|
-};
|
|
|
+ const { excelId } = formModel.value
|
|
|
+ if (excelId) {
|
|
|
+ const arr = formModel.value.excelId.split(',')
|
|
|
+ treeRef.value?.setCheckedKeys(arr)
|
|
|
+ }
|
|
|
+
|
|
|
+ }, 2000)
|
|
|
+}
|
|
|
|
|
|
//获取清表列表
|
|
|
-const excelData = ref([]);
|
|
|
+const excelData = ref([])
|
|
|
const getExcelListData = async () => {
|
|
|
const { data } = await excelApi.getList({
|
|
|
current: 1,
|
|
|
size: 100000,
|
|
|
parentId: 0,
|
|
|
- });
|
|
|
- excelData.value = getArrValue(data?.records);
|
|
|
-};
|
|
|
+ })
|
|
|
+ excelData.value = getArrValue(data?.records)
|
|
|
+}
|
|
|
|
|
|
//清表列表被选择
|
|
|
const nameChange = () => {
|
|
|
if (!isNullES(formModel.value.name)) {
|
|
|
- formModel.value.search = "";
|
|
|
- getTabLazytreeAll();
|
|
|
+ formModel.value.search = ''
|
|
|
+ getTabLazytreeAll()
|
|
|
}
|
|
|
-};
|
|
|
+}
|
|
|
|
|
|
//清表树参数
|
|
|
-const treeRef = ref(null);
|
|
|
+const treeRef = ref(null)
|
|
|
const tabTreeProps = {
|
|
|
- label: "name",
|
|
|
- children: "children",
|
|
|
- disabled: "hasChildren",
|
|
|
+ label: 'name',
|
|
|
+ children: 'children',
|
|
|
+ disabled: 'hasChildren',
|
|
|
isLeaf: function (data) {
|
|
|
- let tag = false;
|
|
|
+ let tag = false
|
|
|
if (!data.hasChildren) {
|
|
|
- tag = true;
|
|
|
+ tag = true
|
|
|
}
|
|
|
- if (data.isExistForm == 1) {
|
|
|
- tag = true;
|
|
|
+ if (Number(data.isExistForm) === 1) {
|
|
|
+ tag = true
|
|
|
}
|
|
|
- return tag;
|
|
|
+ return tag
|
|
|
},
|
|
|
-};
|
|
|
+}
|
|
|
|
|
|
//获取清表树
|
|
|
-const isLoading = ref(false);
|
|
|
-const tabTreeData = ref([]);
|
|
|
+const isLoading = ref(false)
|
|
|
+const tabTreeData = ref([])
|
|
|
const getTabLazytreeAll = async () => {
|
|
|
- const { name, search } = formModel.value;
|
|
|
- isLoading.value = true;
|
|
|
+ const { name, search } = formModel.value
|
|
|
+ isLoading.value = true
|
|
|
const { data } = await excelApi.tabLazyTreeAll({
|
|
|
modeId: name,
|
|
|
name: search,
|
|
|
- });
|
|
|
- tabTreeData.value = getArrValue(data);
|
|
|
- isLoading.value = false;
|
|
|
-};
|
|
|
+ })
|
|
|
+ tabTreeData.value = getArrValue(data)
|
|
|
+ isLoading.value = false
|
|
|
+}
|
|
|
|
|
|
//搜索筛选
|
|
|
const filterNode = (value, data, node) => {
|
|
|
- if (isNullES(value)) return true;
|
|
|
- let _array = []; //这里使用数组存储 只是为了存储值。
|
|
|
- getReturnNode2(node, _array, value);
|
|
|
- let result = false;
|
|
|
+ if (isNullES(value)) return true
|
|
|
+ let _array = [] //这里使用数组存储 只是为了存储值。
|
|
|
+ getReturnNode2(node, _array, value)
|
|
|
+ let result = false
|
|
|
_array.forEach((item) => {
|
|
|
- result = result || item;
|
|
|
- });
|
|
|
- return result;
|
|
|
-};
|
|
|
+ result = result || item
|
|
|
+ })
|
|
|
+ return result
|
|
|
+}
|
|
|
|
|
|
const getReturnNode2 = (node, _array, value) => {
|
|
|
- let isPass =
|
|
|
- node.data && node.data.name && node.data.name.indexOf(value) !== -1;
|
|
|
- isPass ? _array.push(isPass) : "";
|
|
|
+ let isPass
|
|
|
+ = node.data && node.data.name && node.data.name.indexOf(value) !== -1
|
|
|
+ isPass ? _array.push(isPass) : ''
|
|
|
if (!isPass && node.level !== 1 && node.parent) {
|
|
|
- getReturnNode2(node.parent, _array, value);
|
|
|
+ getReturnNode2(node.parent, _array, value)
|
|
|
}
|
|
|
-};
|
|
|
+}
|
|
|
|
|
|
const checkChange = (data) => {
|
|
|
//节点选中回调
|
|
|
if (treeRef.value?.getCheckedNodes().length === 0) {
|
|
|
- treeRef.value?.setCheckedKeys([]);
|
|
|
+ treeRef.value?.setCheckedKeys([])
|
|
|
} else if (treeRef.value?.getCheckedNodes().length >= 1) {
|
|
|
- treeRef.value?.setCheckedKeys([data.id]);
|
|
|
+ treeRef.value?.setCheckedKeys([data.id])
|
|
|
}
|
|
|
-};
|
|
|
+}
|
|
|
|
|
|
//提交表单
|
|
|
-const submitLoading = ref(false);
|
|
|
+const submitLoading = ref(false)
|
|
|
const dialogSubmit = async () => {
|
|
|
- let checkNodes = treeRef.value?.getCheckedNodes();
|
|
|
+ let checkNodes = treeRef.value?.getCheckedNodes()
|
|
|
if (checkNodes.length <= 0) {
|
|
|
- window?.$message?.warning("请先设置清表");
|
|
|
- return;
|
|
|
+ window?.$message?.warning('请先设置清表')
|
|
|
+ return
|
|
|
}
|
|
|
- let node = checkNodes[checkNodes.length - 1];
|
|
|
+ let node = checkNodes[checkNodes.length - 1]
|
|
|
if (Number(node.fileType) !== 3) {
|
|
|
- window?.$message?.warning("请先上传Excel表");
|
|
|
- return;
|
|
|
+ window?.$message?.warning('请先上传Excel表')
|
|
|
+ return
|
|
|
}
|
|
|
- submitLoading.value = true;
|
|
|
- const { isRes } = await excelApi.saveLinkTab({
|
|
|
+ submitLoading.value = true
|
|
|
+ if (type.value === 3) {
|
|
|
+ const { isRes } = await testApi.relevancy({
|
|
|
+ excelId: node.id,
|
|
|
+ classId: rows.value.id,
|
|
|
+ })
|
|
|
+
|
|
|
+ submitLoading.value = false
|
|
|
+ if (!isRes) return
|
|
|
+ dialogClose()
|
|
|
+ window?.$message?.success('关联清表成功')
|
|
|
+ emit('change')
|
|
|
+ } else {
|
|
|
+ const { isRes } = await excelApi.saveLinkTab({
|
|
|
exceTabId: node.id,
|
|
|
tabId: formModel.value.id,
|
|
|
- });
|
|
|
- submitLoading.value = false;
|
|
|
- if (!isRes) return;
|
|
|
- dialogClose();
|
|
|
- window?.$message?.success("关联清表成功");
|
|
|
- emit("change");
|
|
|
-};
|
|
|
+ })
|
|
|
+ submitLoading.value = false
|
|
|
+ if (!isRes) return
|
|
|
+ dialogClose()
|
|
|
+ window?.$message?.success('关联清表成功')
|
|
|
+ emit('change')
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
|
|
|
//关闭弹窗
|
|
|
const dialogClose = () => {
|
|
|
- formModel.value.name = "";
|
|
|
- formModel.value.search = "";
|
|
|
- formModel.value.id = "";
|
|
|
- tabTreeData.value = [];
|
|
|
- treeRef.value?.setCheckedKeys([]);
|
|
|
- isShow.value = false;
|
|
|
- emit("close");
|
|
|
-};
|
|
|
+ formModel.value.name = ''
|
|
|
+ formModel.value.search = ''
|
|
|
+ formModel.value.id = ''
|
|
|
+ tabTreeData.value = []
|
|
|
+ treeRef.value?.setCheckedKeys([])
|
|
|
+ isShow.value = false
|
|
|
+ emit('close')
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|