From 3f6e622083cd63400fd3fc8f5dee4f4c5f2a4ab9 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 08 七月 2024 15:55:46 +0800
Subject: [PATCH] #
---
zy-asrs-admin/src/views/base/mat/field.vue | 127 ++++++++++++++++++++++++++++++++++++++++++
zy-asrs-admin/src/views/base/mat/index.vue | 8 ++
zy-asrs-admin/src/views/base/locType/edit.vue | 13 +++-
zy-asrs-admin/src/views/base/mat/edit.vue | 10 ++-
zy-asrs-admin/.vite/deps/_metadata.json | 8 ++
zy-asrs-admin/.vite/deps/package.json | 3 +
zy-asrs-admin/src/locales/en_US.js | 1
7 files changed, 162 insertions(+), 8 deletions(-)
diff --git a/zy-asrs-admin/.vite/deps/_metadata.json b/zy-asrs-admin/.vite/deps/_metadata.json
new file mode 100644
index 0000000..1974207
--- /dev/null
+++ b/zy-asrs-admin/.vite/deps/_metadata.json
@@ -0,0 +1,8 @@
+{
+ "hash": "f62d655b",
+ "configHash": "23d88a0b",
+ "lockfileHash": "e3b0c442",
+ "browserHash": "43a93352",
+ "optimized": {},
+ "chunks": {}
+}
\ No newline at end of file
diff --git a/zy-asrs-admin/.vite/deps/package.json b/zy-asrs-admin/.vite/deps/package.json
new file mode 100644
index 0000000..3dbc1ca
--- /dev/null
+++ b/zy-asrs-admin/.vite/deps/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/zy-asrs-admin/src/locales/en_US.js b/zy-asrs-admin/src/locales/en_US.js
index e2d4334..195ec89 100644
--- a/zy-asrs-admin/src/locales/en_US.js
+++ b/zy-asrs-admin/src/locales/en_US.js
@@ -44,6 +44,7 @@
'page.table.no': 'No',
'page.add': 'Add New',
'page.adding':'In process of adding',
+ 'page.add.field':'Add Field',
'page.add.success':'Add Successful',
'page.add.fail':'Add failed, please try again!',
'page.updating':'Updating now',
diff --git a/zy-asrs-admin/src/views/base/locType/edit.vue b/zy-asrs-admin/src/views/base/locType/edit.vue
index 1274ac1..040e925 100644
--- a/zy-asrs-admin/src/views/base/locType/edit.vue
+++ b/zy-asrs-admin/src/views/base/locType/edit.vue
@@ -67,11 +67,16 @@
}
watch(formData, (newVal, oldVal) => {
- let contain = JSON.parse(formData.value.contain)
- if (contain != null && contain.length > 0) {
- locTypeSelected.value = contain;
- }else {
+ if(formData.value.contain == null) {
locTypeSelected.value = [];
+ return
+ }
+
+ if(formData.value.contain.length == 0) {
+ locTypeSelected.value = [];
+ }else {
+ let contain = JSON.parse(formData.value.contain);
+ locTypeSelected.value = contain;
}
})
diff --git a/zy-asrs-admin/src/views/base/mat/edit.vue b/zy-asrs-admin/src/views/base/mat/edit.vue
index 2d32427..2d83057 100644
--- a/zy-asrs-admin/src/views/base/mat/edit.vue
+++ b/zy-asrs-admin/src/views/base/mat/edit.vue
@@ -3,6 +3,9 @@
import { get, post, postBlob, postForm } from '@/utils/request.js'
import { formatMessage } from '@/utils/localeUtils.js';
import { message } from 'ant-design-vue';
+import {
+ MinusCircleOutlined,
+} from "@ant-design/icons-vue";
const formTable = ref(null);
const submitButton = ref(null);
@@ -22,7 +25,6 @@
};
const onFinish = values => {
- // console.log('Success:', values);
open.value = false;
post(isSave.value ? '/api/mat/save' : '/api/mat/update', formData.value).then((resp) => {
let result = resp.data;
@@ -118,9 +120,9 @@
<a-form-item :label="formatMessage('db.man_mat.tag_id', '鎵�灞炲綊绫�')" name="tagId" style="width: 250px;"
:rules="[{ required: true, message: '涓婄骇鑿滃崟涓嶈兘涓虹┖!' }]">
<a-tree-select v-model:value="formData.tagId" show-search style="width: 100%"
- :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
- allow-clea tree-data-simple-mode :tree-data="TagQueryTree" tree-node-filter-prop="name"
- :field-names="{
+ :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+ :placeholder="formatMessage('page.input', '璇疯緭鍏�')" allow-clea tree-data-simple-mode
+ :tree-data="TagQueryTree" tree-node-filter-prop="name" :field-names="{
children: 'children',
label: 'name',
value: 'id',
diff --git a/zy-asrs-admin/src/views/base/mat/field.vue b/zy-asrs-admin/src/views/base/mat/field.vue
new file mode 100644
index 0000000..c07cbbc
--- /dev/null
+++ b/zy-asrs-admin/src/views/base/mat/field.vue
@@ -0,0 +1,127 @@
+<script setup>
+import { ref, nextTick, reactive } from 'vue';
+import { get, post, postBlob, postForm } from '@/utils/request.js'
+import { formatMessage } from '@/utils/localeUtils.js';
+import { message } from 'ant-design-vue';
+import {
+ MinusCircleOutlined,
+} from "@ant-design/icons-vue";
+
+const formTable = ref(null);
+const submitButton = ref(null);
+const open = ref(false);
+const initFormData = {}
+let formData = ref([]);
+
+const dynamicField = reactive({
+ col: [],
+});
+
+const removeCol = item => {
+ const index = dynamicField.col.indexOf(item);
+ if (index !== -1) {
+ dynamicField.col.splice(index, 1);
+ }
+};
+const addCol = () => {
+ dynamicField.col.push({
+ name: '',
+ type: '',
+ require: false,
+ desc: '',
+ language: '',
+ });
+};
+
+const emit = defineEmits(['tableReload'])
+
+const handleOk = (e) => {
+ nextTick(() => {
+ setTimeout(() => {
+ submitButton.value.$el.click();
+ }, 100);
+ });
+};
+
+const onFinish = values => {
+ // console.log('Success:', values);
+ // console.log(dynamicField);
+ open.value = false;
+ // post('/api/mat/addField', dynamicField).then((resp) => {
+ // let result = resp.data;
+ // if (result.code === 200) {
+ // message.success(isSave.value ? formatMessage('page.add.success', '鏂板鎴愬姛') : formatMessage('page.update.success', '鏇存柊鎴愬姛'));
+ // } else {
+ // message.error(result.msg);
+ // }
+ // emit('tableReload', 'reload')
+ // nextTick(() => {
+ // formTable.value.resetFields()
+ // })
+ // })
+};
+const onFinishFailed = errorInfo => {
+ console.log('Failed:', errorInfo);
+};
+
+
+defineExpose({
+ open,
+})
+
+</script>
+
+<script>
+export default {
+ name: '鍟嗗搧妗f-field'
+}
+</script>
+
+<template>
+ <div>
+ <a-modal v-model:open="open"
+ :title="formatMessage('page.add.field', '娣诲姞瀛楁')" @ok="handleOk"
+ style="width: 600px;">
+ <a-form :model="formData" ref="formTable" name="formTable" :label-col="{ span: 8 }"
+ :wrapper-col="{ span: 16 }" style="display: flex;justify-content: space-between;flex-wrap: wrap;"
+ autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed">
+ <div v-for="(item, index) in dynamicField.col" :key="item.id"
+ style="display: flex;justify-content: space-between;flex-wrap: wrap;">
+ <a-form-item :label="formatMessage('dynamicField.name', '瀛楁')" :name="['col-name', index,]"
+ style="width: 250px;">
+ <a-input v-model:value="item.name" />
+ </a-form-item>
+ <a-form-item :label="formatMessage('dynamicField.type', '绫诲瀷')" :name="['col-type', index]"
+ style="width: 250px;">
+ <a-input v-model:value="item.type"/>
+ </a-form-item>
+ <a-form-item :label="formatMessage('dynamicField.desc', '鎻忚堪')" :name="['col-desc', index]"
+ style="width: 250px;">
+ <a-input v-model:value="item.desc"/>
+ </a-form-item>
+ <a-form-item :label="formatMessage('dynamicField.language', '鍥介檯鍖�')"
+ :name="['col-language', index]" style="width: 250px;">
+ <a-input v-model:value="item.language"/>
+ </a-form-item>
+ <a-form-item :label="formatMessage('dynamicField.delete', '鍒犻櫎')"
+ :name="['col-delete', index]" style="width: 250px;">
+ <MinusCircleOutlined @click="removeCol(item)" />
+ </a-form-item>
+ </div>
+
+ <a-form-item>
+ <a-button type="primary" html-type="submit" ref="submitButton"
+ style="visibility: hidden;">Submit</a-button>
+ </a-form-item>
+
+ </a-form>
+
+ <a-button type="dashed" style="width: 100%" @click="addCol">
+ <PlusOutlined />
+ {{ formatMessage('page.add.field', '娣诲姞瀛楁') }}
+ </a-button>
+ </a-modal>
+ </div>
+</template>
+
+<style></style>
diff --git a/zy-asrs-admin/src/views/base/mat/index.vue b/zy-asrs-admin/src/views/base/mat/index.vue
index 414c1ee..987cb16 100644
--- a/zy-asrs-admin/src/views/base/mat/index.vue
+++ b/zy-asrs-admin/src/views/base/mat/index.vue
@@ -5,6 +5,7 @@
import { message, Modal } from 'ant-design-vue';
import { logout } from '@/config.js';
import EditView from './edit.vue'
+import FieldView from './field.vue'
import { formatMessage } from '@/utils/localeUtils.js';
const context = getCurrentInstance()?.appContext.config.globalProperties;
@@ -15,6 +16,7 @@
let pageSize = 10;
const searchInput = ref("")
const editChild = ref(null)
+const fieldChild = ref(null)
let tableData = ref([]);
getPage();
@@ -272,6 +274,10 @@
editChild.value.isSave = item == null;
}
+const handleField = () => {
+ fieldChild.value.open = true;
+}
+
const handleDel = (rows) => {
Modal.confirm({
title: formatMessage('page.delete', '鍒犻櫎'),
@@ -330,12 +336,14 @@
<template>
<div>
+ <FieldView ref="fieldChild" @tableReload="handleTableReload" />
<EditView ref="editChild" @tableReload="handleTableReload" />
<div class="table-header">
<a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')"
style="width: 200px;" @search="onSearch" />
<div class="table-header-right">
<a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button>
+ <a-button @click="handleField" type="primary">{{ formatMessage('page.add.field', '娣诲姞瀛楁') }}</a-button>
<a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button>
</div>
</div>
--
Gitblit v1.9.1