#
Junjie
2024-07-08 3f6e622083cd63400fd3fc8f5dee4f4c5f2a4ab9
#
4个文件已修改
3个文件已添加
170 ■■■■■ 已修改文件
zy-asrs-admin/.vite/deps/_metadata.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/.vite/deps/package.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/locales/en_US.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/views/base/locType/edit.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/views/base/mat/edit.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/views/base/mat/field.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/src/views/base/mat/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-admin/.vite/deps/_metadata.json
New file
@@ -0,0 +1,8 @@
{
  "hash": "f62d655b",
  "configHash": "23d88a0b",
  "lockfileHash": "e3b0c442",
  "browserHash": "43a93352",
  "optimized": {},
  "chunks": {}
}
zy-asrs-admin/.vite/deps/package.json
New file
@@ -0,0 +1,3 @@
{
  "type": "module"
}
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',
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;
    }
})
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',
zy-asrs-admin/src/views/base/mat/field.vue
New file
@@ -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: '商品档案-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>
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>