Merge branch 'main' of http://123.132.248.154:10000/HC_YFZX/CaiYuanYiTiHua
commit
1543b3c717
|
|
@ -90,7 +90,7 @@
|
||||||
<a-button type="primary" style="margin-right: 25px" @click="prevData">上一条</a-button>
|
<a-button type="primary" style="margin-right: 25px" @click="prevData">上一条</a-button>
|
||||||
<a-button type="primary" @click="nextData">下一条</a-button>
|
<a-button type="primary" @click="nextData">下一条</a-button>
|
||||||
</div>
|
</div>
|
||||||
<NewShowInfoModal v-if="dayjs(showInfoData.synchronoustime).isAfter(newVersion)" :showInfoData="showInfoData" />
|
<NewShowInfoModal v-if="(showInfoData?.biaozhu && [0,1,2].includes(showInfoData?.biaozhu))" :showInfoData="showInfoData" />
|
||||||
<ShowInfoModal v-else :showInfoData="showInfoData" />
|
<ShowInfoModal v-else :showInfoData="showInfoData" />
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
<template>
|
||||||
|
<BasicModal
|
||||||
|
v-bind="$attrs"
|
||||||
|
@register="registerModal"
|
||||||
|
:showCancelBtn="false"
|
||||||
|
:showOkBtn="false"
|
||||||
|
width="60%"
|
||||||
|
title="查看账号"
|
||||||
|
>
|
||||||
|
<BasicTable @register="registerTable" :searchInfo="searchInfo" />
|
||||||
|
</BasicModal>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, reactive, onMounted } from 'vue';
|
||||||
|
import { BasicModal, useModalInner } from '@/components/Modal';
|
||||||
|
import { loadByRole } from '@/api/demo/system';
|
||||||
|
import { BasicTable, useTable } from '@/components/Table';
|
||||||
|
|
||||||
|
defineOptions({ name: 'DeptModal' });
|
||||||
|
|
||||||
|
const emit = defineEmits(['success', 'register']);
|
||||||
|
const rowId = ref('');
|
||||||
|
const searchInfo = reactive<Recordable>({});
|
||||||
|
|
||||||
|
const [registerModal, { setModalProps }] = useModalInner(async (data) => {
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
|
rowId.value = data.record.id;
|
||||||
|
searchInfo.roleId = rowId.value;
|
||||||
|
reload();
|
||||||
|
});
|
||||||
|
// 异步传参后查询历史记录表格
|
||||||
|
const [registerTable, { reload }] = useTable({
|
||||||
|
canResize: true,
|
||||||
|
resizeHeightOffset: 150,
|
||||||
|
api: loadByRole,
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '用户名',
|
||||||
|
dataIndex: 'account',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '昵称',
|
||||||
|
dataIndex: 'name',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
rowKey: 'id',
|
||||||
|
showTableSetting: false,
|
||||||
|
handleSearchInfoFn(info) {
|
||||||
|
return info;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(() => {});
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.select-account {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,173 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<BasicModal v-bind="$attrs" @register="registerModal" title="分配菜单" @ok="handleSubmit">
|
||||||
|
<template #insertFooter>
|
||||||
|
<a-button type="primary" @click="upBtn" :disabled="loading" v-if="step == 2"
|
||||||
|
>上一步</a-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
<BasicTree
|
||||||
|
ref="asyncExpandTreeRef"
|
||||||
|
title="菜单树"
|
||||||
|
toolbar
|
||||||
|
treeWrapperClassName="h-[calc(100%-35px)] overflow-auto"
|
||||||
|
:clickRowToExpand="false"
|
||||||
|
:treeData="treeData"
|
||||||
|
:fieldNames="{ key: 'id', title: 'name' }"
|
||||||
|
:defaultExpandAll="true"
|
||||||
|
:checkable="true"
|
||||||
|
:checkStrictly="true"
|
||||||
|
@check="handleSelect"
|
||||||
|
v-if="step == 1"
|
||||||
|
/>
|
||||||
|
<BasicTree
|
||||||
|
ref="asyncBtnExpandTreeRef"
|
||||||
|
title="按钮树"
|
||||||
|
toolbar
|
||||||
|
treeWrapperClassName="h-[calc(100%-35px)] overflow-auto"
|
||||||
|
:clickRowToExpand="false"
|
||||||
|
:treeData="btnData"
|
||||||
|
:fieldNames="{ key: 'id', title: 'name', children: 'elements' }"
|
||||||
|
:defaultExpandAll="true"
|
||||||
|
:checkable="true"
|
||||||
|
:checkStrictly="true"
|
||||||
|
@check="handleBntSelect"
|
||||||
|
v-else
|
||||||
|
/>
|
||||||
|
</BasicModal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, unref, onMounted, nextTick } from 'vue';
|
||||||
|
import { BasicModal, useModalInner } from '@/components/Modal';
|
||||||
|
import { BasicTree, TreeItem, TreeActionType } from '@/components/Tree';
|
||||||
|
import { getMenuList } from '@/api/sys/menu';
|
||||||
|
import { assignModule, loadForRole } from '@/api/demo/system';
|
||||||
|
import { useMessage } from '@/hooks/web/useMessage';
|
||||||
|
|
||||||
|
defineOptions({ name: 'ModulesModal' });
|
||||||
|
|
||||||
|
const emit = defineEmits(['success', 'register', 'select']);
|
||||||
|
const treeData = ref<TreeItem[]>([]);
|
||||||
|
const btnData = ref<any[]>([]);
|
||||||
|
const step = ref(1);
|
||||||
|
interface dataType {
|
||||||
|
moduleIds?: any;
|
||||||
|
elementIds?: any;
|
||||||
|
}
|
||||||
|
const checkData: dataType = {};
|
||||||
|
const asyncExpandTreeRef = ref<Nullable<TreeActionType>>(null);
|
||||||
|
const asyncBtnExpandTreeRef = ref<Nullable<TreeActionType>>(null);
|
||||||
|
const { createMessage } = useMessage();
|
||||||
|
function upBtn() {
|
||||||
|
step.value = 1;
|
||||||
|
getMenusForRol(rowId.value);
|
||||||
|
}
|
||||||
|
function treeIterator(tree) {
|
||||||
|
tree.forEach((node) => {
|
||||||
|
node.name = node.item.name;
|
||||||
|
node.id = node.item.id;
|
||||||
|
node.elements = node.item.elements;
|
||||||
|
node.children && treeIterator(node.children);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function btnIterator(moduleId, tree) {
|
||||||
|
tree.forEach((node) => {
|
||||||
|
if (moduleId == node.item.id) {
|
||||||
|
btnData.value.push({
|
||||||
|
name: node.item.name,
|
||||||
|
id: node.item.id,
|
||||||
|
elements: node.item.elements,
|
||||||
|
disabled: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
node.children && btnIterator(moduleId, node.children);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async function fetch() {
|
||||||
|
step.value = 1;
|
||||||
|
const data = (await getMenuList()) as unknown as TreeItem[];
|
||||||
|
treeIterator(data);
|
||||||
|
treeData.value = await data;
|
||||||
|
// 展开全部
|
||||||
|
nextTick(() => {
|
||||||
|
unref(asyncExpandTreeRef)?.expandAll(true);
|
||||||
|
unref(asyncBtnExpandTreeRef)?.expandAll(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let moduleIds = ref([]);
|
||||||
|
let elementIds = ref([]);
|
||||||
|
async function getMenusForRol(id) {
|
||||||
|
var menusForRol = await loadForRole({
|
||||||
|
roleId: id,
|
||||||
|
});
|
||||||
|
// var forRole = await loadForRole()
|
||||||
|
btnData.value = [];
|
||||||
|
menusForRol.moduleIds.forEach((element) => {
|
||||||
|
btnIterator(element, treeData.value);
|
||||||
|
});
|
||||||
|
unref(asyncExpandTreeRef)?.setCheckedKeys(menusForRol.moduleIds);
|
||||||
|
checkData.moduleIds = menusForRol.moduleIds;
|
||||||
|
checkData.elementIds = menusForRol.elementIds;
|
||||||
|
unref(asyncBtnExpandTreeRef)?.setCheckedKeys(checkData.elementIds);
|
||||||
|
moduleIds.value = menusForRol.moduleIds;
|
||||||
|
elementIds.value = menusForRol.elementIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleSelect(checkedKeys, e: { checked: boolean; checkedNodes; node; event }) {
|
||||||
|
const list = e.checkedNodes;
|
||||||
|
moduleIds.value = [];
|
||||||
|
list.forEach((element: any) => {
|
||||||
|
element.disabled = true;
|
||||||
|
element.name = element.item.name;
|
||||||
|
element.children = [];
|
||||||
|
moduleIds.value.push(element.item.id);
|
||||||
|
});
|
||||||
|
btnData.value = list;
|
||||||
|
}
|
||||||
|
function handleBntSelect(checkedKeys, e: { checked: boolean; checkedNodes; node; event }) {
|
||||||
|
const list = e.checkedNodes;
|
||||||
|
elementIds.value = [];
|
||||||
|
list.forEach((element: any) => {
|
||||||
|
elementIds.value.push(element.id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
fetch();
|
||||||
|
});
|
||||||
|
const rowId = ref('');
|
||||||
|
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||||
|
rowId.value = data.record.id;
|
||||||
|
step.value = 1;
|
||||||
|
getMenusForRol(rowId.value);
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
|
});
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
if (step.value == 1) {
|
||||||
|
step.value = 2;
|
||||||
|
setTimeout(() => {
|
||||||
|
unref(asyncBtnExpandTreeRef)?.setCheckedKeys(checkData.elementIds);
|
||||||
|
}, 10);
|
||||||
|
} else {
|
||||||
|
var query = {
|
||||||
|
roleId: rowId.value,
|
||||||
|
moduleIds: moduleIds.value,
|
||||||
|
elementIds: elementIds.value,
|
||||||
|
};
|
||||||
|
const data = await assignModule(query);
|
||||||
|
if (data) {
|
||||||
|
setModalProps({ confirmLoading: true });
|
||||||
|
closeModal();
|
||||||
|
emit('success');
|
||||||
|
return createMessage.success('成功');
|
||||||
|
} else {
|
||||||
|
return createMessage.error('失败');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
<template>
|
||||||
|
<BasicDrawer
|
||||||
|
v-bind="$attrs"
|
||||||
|
@register="registerDrawer"
|
||||||
|
showFooter
|
||||||
|
:title="getTitle"
|
||||||
|
width="500px"
|
||||||
|
@ok="handleSubmit"
|
||||||
|
>
|
||||||
|
<!-- <BasicForm @register="registerForm">
|
||||||
|
<template #menu="{ model, field }">
|
||||||
|
<BasicTree
|
||||||
|
v-model:value="model[field]"
|
||||||
|
:treeData="treeData"
|
||||||
|
:fieldNames="{ title: 'menuName', key: 'id' }"
|
||||||
|
checkable
|
||||||
|
toolbar
|
||||||
|
title="菜单分配"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</BasicForm> -->
|
||||||
|
</BasicDrawer>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, computed, unref } from 'vue';
|
||||||
|
import { BasicForm, useForm } from '@/components/Form';
|
||||||
|
import { formSchema } from './role.data';
|
||||||
|
import { BasicDrawer, useDrawerInner } from '@/components/Drawer';
|
||||||
|
import { BasicTree, TreeItem } from '@/components/Tree';
|
||||||
|
|
||||||
|
// import { getMenuList } from '@/api/demo/system';
|
||||||
|
|
||||||
|
const emit = defineEmits(['success', 'register']);
|
||||||
|
const isUpdate = ref(true);
|
||||||
|
const treeData = ref<TreeItem[]>([]);
|
||||||
|
|
||||||
|
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
|
||||||
|
labelWidth: 90,
|
||||||
|
baseColProps: { span: 24 },
|
||||||
|
schemas: formSchema,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
|
||||||
|
// resetFields();
|
||||||
|
// setDrawerProps({ confirmLoading: false });
|
||||||
|
// // 需要在setFieldsValue之前先填充treeData,否则Tree组件可能会报key not exist警告
|
||||||
|
// // if (unref(treeData).length === 0) {
|
||||||
|
// // treeData.value = (await getMenuList()) as any as TreeItem[];
|
||||||
|
// // }
|
||||||
|
// isUpdate.value = !!data?.isUpdate;
|
||||||
|
|
||||||
|
// if (unref(isUpdate)) {
|
||||||
|
// setFieldsValue({
|
||||||
|
// ...data.record,
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
});
|
||||||
|
|
||||||
|
const getTitle = computed(() => (!unref(isUpdate) ? '新增角色' : '编辑角色'));
|
||||||
|
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
const values = await validate();
|
||||||
|
setDrawerProps({ confirmLoading: true });
|
||||||
|
// TODO custom api
|
||||||
|
closeDrawer();
|
||||||
|
emit('success');
|
||||||
|
} finally {
|
||||||
|
setDrawerProps({ confirmLoading: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,75 @@
|
||||||
|
<template>
|
||||||
|
<BasicModal v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
|
||||||
|
<BasicForm @register="registerForm" />
|
||||||
|
</BasicModal>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, computed, unref } from 'vue';
|
||||||
|
import { BasicModal, useModalInner } from '@/components/Modal';
|
||||||
|
import { BasicForm, useForm } from '@/components/Form';
|
||||||
|
import { formSchema } from './role.data';
|
||||||
|
|
||||||
|
import { addRole, updateRole } from '@/api/demo/system';
|
||||||
|
import { useMessage } from '@/hooks/web/useMessage';
|
||||||
|
const { createMessage } = useMessage();
|
||||||
|
|
||||||
|
defineOptions({ name: 'DeptModal' });
|
||||||
|
|
||||||
|
const emit = defineEmits(['success', 'register']);
|
||||||
|
|
||||||
|
const isUpdate = ref(true);
|
||||||
|
|
||||||
|
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
|
||||||
|
labelWidth: 100,
|
||||||
|
baseColProps: { span: 24 },
|
||||||
|
schemas: formSchema,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||||
|
resetFields();
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
|
isUpdate.value = !!data?.isUpdate;
|
||||||
|
|
||||||
|
if (unref(isUpdate)) {
|
||||||
|
setFieldsValue({
|
||||||
|
...data.record,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const getTitle = computed(() => (!unref(isUpdate) ? '新增角色' : '编辑角色'));
|
||||||
|
|
||||||
|
async function handleSubmit() {
|
||||||
|
try {
|
||||||
|
const values = await validate();
|
||||||
|
let query = values;
|
||||||
|
// 调用接口
|
||||||
|
if (!unref(isUpdate)) {
|
||||||
|
const data = await addRole(query);
|
||||||
|
if (data) {
|
||||||
|
setModalProps({ confirmLoading: true });
|
||||||
|
// TODO custom api
|
||||||
|
closeModal();
|
||||||
|
emit('success');
|
||||||
|
return createMessage.success('新增成功');
|
||||||
|
} else {
|
||||||
|
return createMessage.error('新增失败');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const data = await updateRole(query);
|
||||||
|
if (data) {
|
||||||
|
setModalProps({ confirmLoading: true });
|
||||||
|
// TODO custom api
|
||||||
|
closeModal();
|
||||||
|
emit('success');
|
||||||
|
return createMessage.success('编辑成功');
|
||||||
|
} else {
|
||||||
|
return createMessage.error('编辑失败');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
setModalProps({ confirmLoading: false });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
export { default as AccountModal } from './AccountModal.vue';
|
||||||
|
export { default as ModulesModal } from './ModulesModal.vue';
|
||||||
|
export { default as RoleDrawer } from './RoleDrawer.vue';
|
||||||
|
export { default as RoleModal } from './RoleModal.vue';
|
||||||
|
|
||||||
|
|
@ -0,0 +1,83 @@
|
||||||
|
import { BasicColumn, FormSchema } from '@/components/Table';
|
||||||
|
import { h } from 'vue';
|
||||||
|
import { Switch,Tag } from 'ant-design-vue';
|
||||||
|
import { setRoleStatus } from '@/api/demo/system';
|
||||||
|
import { useMessage } from '@/hooks/web/useMessage';
|
||||||
|
|
||||||
|
type CheckedType = boolean | string | number;
|
||||||
|
export const columns: BasicColumn[] = [
|
||||||
|
{
|
||||||
|
title: '监控编号',
|
||||||
|
dataIndex: 'jkdgbidzlkjg',
|
||||||
|
width:80,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: '可见光监控',
|
||||||
|
dataIndex: 'jkdmckjg',
|
||||||
|
width: 100,
|
||||||
|
}, {
|
||||||
|
title: '热成像监控',
|
||||||
|
dataIndex: 'jkdmcrcx',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '监控类型',
|
||||||
|
dataIndex: 'jklx',
|
||||||
|
width: 80,
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
return "高空瞭望";
|
||||||
|
},
|
||||||
|
|
||||||
|
},{
|
||||||
|
title: '所属县区',
|
||||||
|
dataIndex: 'qx',
|
||||||
|
width:80,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '位置',
|
||||||
|
dataIndex: 'jd',
|
||||||
|
width: 80,
|
||||||
|
customRender: ({ record }) => {
|
||||||
|
return record.jd+" , "+record.wd;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const searchFormSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'key',
|
||||||
|
label: '关键字',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
},
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
export const formSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'id',
|
||||||
|
label: '角色名称',
|
||||||
|
required: true,
|
||||||
|
component: 'Input',
|
||||||
|
ifShow:false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'name',
|
||||||
|
label: '角色名称',
|
||||||
|
required: true,
|
||||||
|
component: 'Input',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
label: '状态',
|
||||||
|
component: 'RadioButtonGroup',
|
||||||
|
defaultValue: 0,
|
||||||
|
componentProps: {
|
||||||
|
options: [
|
||||||
|
{ label: '启用', value: 0},
|
||||||
|
{ label: '停用', value: 1 },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
@ -195,7 +195,7 @@
|
||||||
// 持续监管-图片插入
|
// 持续监管-图片插入
|
||||||
async function UpdateUploadCXJGData(value) {
|
async function UpdateUploadCXJGData(value) {
|
||||||
let querys = {
|
let querys = {
|
||||||
id: value.caseid,
|
caseno: value.caseid,
|
||||||
path: value.path,
|
path: value.path,
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,7 @@ export const searchFormSchema: FormSchema[] = [
|
||||||
field: 'caseNo',
|
field: 'caseNo',
|
||||||
label: '线索编号',
|
label: '线索编号',
|
||||||
component: 'Input',
|
component: 'Input',
|
||||||
colProps: { span: 4 },
|
colProps: { span: 6 },
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -225,6 +225,29 @@
|
||||||
<a-descriptions-item label="填报时间">{{
|
<a-descriptions-item label="填报时间">{{
|
||||||
props.showInfoData.examine_time
|
props.showInfoData.examine_time
|
||||||
}}</a-descriptions-item>
|
}}</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="无人机复飞照片">
|
||||||
|
<div class="image-div">
|
||||||
|
<a-image-preview-group
|
||||||
|
:preview="{
|
||||||
|
getContainer: getContainer,
|
||||||
|
onVisibleChange: handlerImageChange,
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template v-for="(imageItem, imageIndex) in wrjffzhaopianList" :key="imageIndex">
|
||||||
|
<a-image
|
||||||
|
v-if="imageItem"
|
||||||
|
@click="handlerPreviewImage(imageIndex, imageItem)"
|
||||||
|
width="100px"
|
||||||
|
height="100px"
|
||||||
|
:src="`${VITE_GLOB_INFO_IMAGE_URL}/${imageItem}`"
|
||||||
|
:preview="{
|
||||||
|
getContainer,
|
||||||
|
}"
|
||||||
|
></a-image>
|
||||||
|
</template>
|
||||||
|
</a-image-preview-group>
|
||||||
|
</div>
|
||||||
|
</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
// vite.config.ts
|
||||||
|
import { defineApplicationConfig } from "file:///E:/projects/%E8%B4%A2%E6%BA%90%E7%B3%BB%E7%BB%9F/CaiYuanYiTiHua/internal/vite-config/dist/index.mjs";
|
||||||
|
var vite_config_default = defineApplicationConfig({
|
||||||
|
overrides: {
|
||||||
|
optimizeDeps: {
|
||||||
|
include: [
|
||||||
|
"echarts/core",
|
||||||
|
"echarts/charts",
|
||||||
|
"echarts/components",
|
||||||
|
"echarts/renderers",
|
||||||
|
"qrcode",
|
||||||
|
"@iconify/iconify",
|
||||||
|
"ant-design-vue/es/locale/zh_CN",
|
||||||
|
"ant-design-vue/es/locale/en_US",
|
||||||
|
"@/../lib/vform/designer.umd.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
/* 其他build生产打包配置省略 */
|
||||||
|
//...
|
||||||
|
target: "esnext",
|
||||||
|
commonjsOptions: {
|
||||||
|
include: /node_modules|lib/
|
||||||
|
//这里记得把lib目录加进来,否则生产打包会报错!!
|
||||||
|
}
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
proxy: {
|
||||||
|
"/basic-api": {
|
||||||
|
target: "http://localhost:3000",
|
||||||
|
changeOrigin: true,
|
||||||
|
ws: true,
|
||||||
|
rewrite: (path) => path.replace(new RegExp(`^/basic-api`), "")
|
||||||
|
// only https
|
||||||
|
// secure: false
|
||||||
|
},
|
||||||
|
"/upload": {
|
||||||
|
target: "http://localhost:3300/upload",
|
||||||
|
changeOrigin: true,
|
||||||
|
ws: true,
|
||||||
|
rewrite: (path) => path.replace(new RegExp(`^/upload`), "")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
warmup: {
|
||||||
|
clientFiles: ["./index.html", "./src/{views,components}/*"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
define: {
|
||||||
|
"process.env": {
|
||||||
|
BASE_URL: "/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
css: {
|
||||||
|
preprocessorOptions: {
|
||||||
|
less: {
|
||||||
|
javascriptEnabled: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
plugins: []
|
||||||
|
}
|
||||||
|
});
|
||||||
|
export {
|
||||||
|
vite_config_default as default
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxwcm9qZWN0c1xcXFxcdThEMjJcdTZFOTBcdTdDRkJcdTdFREZcXFxcQ2FpWXVhbllpVGlIdWFcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkU6XFxcXHByb2plY3RzXFxcXFx1OEQyMlx1NkU5MFx1N0NGQlx1N0VERlxcXFxDYWlZdWFuWWlUaUh1YVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRTovcHJvamVjdHMvJUU4JUI0JUEyJUU2JUJBJTkwJUU3JUIzJUJCJUU3JUJCJTlGL0NhaVl1YW5ZaVRpSHVhL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQXBwbGljYXRpb25Db25maWcgfSBmcm9tICdAdmJlbi92aXRlLWNvbmZpZyc7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUFwcGxpY2F0aW9uQ29uZmlnKHtcbiAgb3ZlcnJpZGVzOiB7XG4gICAgb3B0aW1pemVEZXBzOiB7XG4gICAgICBpbmNsdWRlOiBbXG4gICAgICAgICdlY2hhcnRzL2NvcmUnLFxuICAgICAgICAnZWNoYXJ0cy9jaGFydHMnLFxuICAgICAgICAnZWNoYXJ0cy9jb21wb25lbnRzJyxcbiAgICAgICAgJ2VjaGFydHMvcmVuZGVyZXJzJyxcbiAgICAgICAgJ3FyY29kZScsXG4gICAgICAgICdAaWNvbmlmeS9pY29uaWZ5JyxcbiAgICAgICAgJ2FudC1kZXNpZ24tdnVlL2VzL2xvY2FsZS96aF9DTicsXG4gICAgICAgICdhbnQtZGVzaWduLXZ1ZS9lcy9sb2NhbGUvZW5fVVMnLFxuICAgICAgICAnQC8uLi9saWIvdmZvcm0vZGVzaWduZXIudW1kLmpzJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBidWlsZDoge1xuICAgICAgLyogXHU1MTc2XHU0RUQ2YnVpbGRcdTc1MUZcdTRFQTdcdTYyNTNcdTUzMDVcdTkxNERcdTdGNkVcdTc3MDFcdTc1NjUgKi9cbiAgICAgIC8vLi4uXG4gICAgICB0YXJnZXQ6ICdlc25leHQnLFxuICAgICAgY29tbW9uanNPcHRpb25zOiB7XG4gICAgICAgIGluY2x1ZGU6IC9ub2RlX21vZHVsZXN8bGliLywgLy9cdThGRDlcdTkxQ0NcdThCQjBcdTVGOTdcdTYyOEFsaWJcdTc2RUVcdTVGNTVcdTUyQTBcdThGREJcdTY3NjVcdUZGMENcdTU0MjZcdTUyMTlcdTc1MUZcdTRFQTdcdTYyNTNcdTUzMDVcdTRGMUFcdTYyQTVcdTk1MTlcdUZGMDFcdUZGMDFcbiAgICAgIH0sXG4gICAgfSxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIHByb3h5OiB7XG4gICAgICAgICcvYmFzaWMtYXBpJzoge1xuICAgICAgICAgIHRhcmdldDogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAgIHdzOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgXi9iYXNpYy1hcGlgKSwgJycpLFxuICAgICAgICAgIC8vIG9ubHkgaHR0cHNcbiAgICAgICAgICAvLyBzZWN1cmU6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgICcvdXBsb2FkJzoge1xuICAgICAgICAgIHRhcmdldDogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzMwMC91cGxvYWQnLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICByZXdyaXRlOiAocGF0aCkgPT4gcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYF4vdXBsb2FkYCksICcnKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB3YXJtdXA6IHtcbiAgICAgICAgY2xpZW50RmlsZXM6IFsnLi9pbmRleC5odG1sJywgJy4vc3JjL3t2aWV3cyxjb21wb25lbnRzfS8qJ10sXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVmaW5lOiB7XG4gICAgICAncHJvY2Vzcy5lbnYnOiB7XG4gICAgICAgIEJBU0VfVVJMOiAnLycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIGxlc3M6IHtcbiAgICAgICAgICBqYXZhc2NyaXB0RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBwbHVnaW5zOiBbXSxcbiAgfSxcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUF1VCxTQUFTLCtCQUErQjtBQUUvVixJQUFPLHNCQUFRLHdCQUF3QjtBQUFBLEVBQ3JDLFdBQVc7QUFBQSxJQUNULGNBQWM7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsT0FBTztBQUFBO0FBQUE7QUFBQSxNQUdMLFFBQVE7QUFBQSxNQUNSLGlCQUFpQjtBQUFBLFFBQ2YsU0FBUztBQUFBO0FBQUEsTUFDWDtBQUFBLElBQ0Y7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLE9BQU87QUFBQSxRQUNMLGNBQWM7QUFBQSxVQUNaLFFBQVE7QUFBQSxVQUNSLGNBQWM7QUFBQSxVQUNkLElBQUk7QUFBQSxVQUNKLFNBQVMsQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLE9BQU8sYUFBYSxHQUFHLEVBQUU7QUFBQTtBQUFBO0FBQUEsUUFHL0Q7QUFBQSxRQUNBLFdBQVc7QUFBQSxVQUNULFFBQVE7QUFBQSxVQUNSLGNBQWM7QUFBQSxVQUNkLElBQUk7QUFBQSxVQUNKLFNBQVMsQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLE9BQU8sVUFBVSxHQUFHLEVBQUU7QUFBQSxRQUM1RDtBQUFBLE1BQ0Y7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLGFBQWEsQ0FBQyxnQkFBZ0IsNEJBQTRCO0FBQUEsTUFDNUQ7QUFBQSxJQUNGO0FBQUEsSUFDQSxRQUFRO0FBQUEsTUFDTixlQUFlO0FBQUEsUUFDYixVQUFVO0FBQUEsTUFDWjtBQUFBLElBQ0Y7QUFBQSxJQUNBLEtBQUs7QUFBQSxNQUNILHFCQUFxQjtBQUFBLFFBQ25CLE1BQU07QUFBQSxVQUNKLG1CQUFtQjtBQUFBLFFBQ3JCO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLFNBQVMsQ0FBQztBQUFBLEVBQ1o7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo=
|
||||||
Loading…
Reference in New Issue