Merge branch 'main' of http://192.168.65.198:3000/Front_Team/SPDM
This commit is contained in:
@@ -149,7 +149,7 @@ export const addLibraryCategoryObjectApi = (params: any) => {
|
||||
* @returns
|
||||
*/
|
||||
export const deleteSimulationParameterApi = (params: any) => {
|
||||
return get(`${PREFIX}simulationParameterLibrary/deleteSimulationParameter`, params);
|
||||
return post(`${PREFIX}simulationParameterLibrary/deleteSimulationParameter`, params);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<template v-if="item.inputMode !== 'slot'">
|
||||
<el-input
|
||||
v-if="item.inputMode === 'input'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
:placeholder="(item.disabled && showDisabled) ? '' : '请输入'"
|
||||
clearable
|
||||
@@ -10,6 +11,7 @@
|
||||
/>
|
||||
<el-input
|
||||
v-if="item.inputMode === 'textarea'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
type="textarea"
|
||||
autosize
|
||||
@@ -19,6 +21,7 @@
|
||||
/>
|
||||
<el-input-number
|
||||
v-if="item.inputMode === 'inputNumber'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
:placeholder="(item.disabled && showDisabled) ? '' : '请输入'"
|
||||
:min="0"
|
||||
@@ -29,6 +32,7 @@
|
||||
/>
|
||||
<el-select
|
||||
v-if="item.inputMode === 'select'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
:placeholder="(item.disabled && showDisabled) ? '' : '请选择'"
|
||||
clearable
|
||||
@@ -38,6 +42,7 @@
|
||||
></el-select>
|
||||
<el-radio-group
|
||||
v-if="item.inputMode === 'radio'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
:disabled="item.disabled && showDisabled"
|
||||
@change="(val: any) => changeFun(item.key, val)"
|
||||
@@ -46,6 +51,7 @@
|
||||
</el-radio-group>
|
||||
<el-checkbox-group
|
||||
v-if="item.inputMode === 'checkbox'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
:disabled="item.disabled && showDisabled"
|
||||
@change="(val: any) => changeFun(item.key, val)"
|
||||
@@ -61,6 +67,7 @@
|
||||
/>
|
||||
<el-date-picker
|
||||
v-if="item.inputMode === 'date'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
type="datetime"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
@@ -72,6 +79,7 @@
|
||||
/>
|
||||
<el-date-picker
|
||||
v-if="item.inputMode === 'daterange'"
|
||||
v-bind="attrs"
|
||||
v-model="formData[item.key]"
|
||||
type="datetimerange"
|
||||
start-placeholder="开始时间"
|
||||
@@ -84,6 +92,7 @@
|
||||
/>
|
||||
<el-upload
|
||||
v-if="item.inputMode === 'choseFile'"
|
||||
v-bind="attrs"
|
||||
v-model:file-list="formData[item.key]"
|
||||
class="upload-btn"
|
||||
:limit="item.limit"
|
||||
@@ -149,12 +158,14 @@ interface Props {
|
||||
item: any;
|
||||
form: any;
|
||||
showDisabled?: boolean;
|
||||
attrs?: any;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
item: {},
|
||||
form: {},
|
||||
showDisabled: false,
|
||||
attrs: {},
|
||||
});
|
||||
|
||||
watch(() => props.form, (val: any) => {
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
:item="item"
|
||||
:form="formData"
|
||||
:showDisabled="showDisabled"
|
||||
:attrs="formAttrs[item.key]"
|
||||
@change="(val) => changeFun(val)"
|
||||
@remove="(val) => removeFun(val)"
|
||||
>
|
||||
@@ -32,7 +33,6 @@ import FormItem from './formItem.vue';
|
||||
import { getFormConfigureApi } from '@/api/system/systemData';
|
||||
import { isPhone, isEmail, hasNoSpecialChar, length20, length100 } from '@/utils/validate';
|
||||
import { formOptionsFormat } from './lib';
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
|
||||
const emit = defineEmits(['change', 'remove', 'load']);
|
||||
|
||||
@@ -42,6 +42,7 @@ interface Props {
|
||||
showDisabled?: boolean;
|
||||
ruleData?: any;
|
||||
data?: any;
|
||||
formAttrs?: any;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
@@ -50,6 +51,7 @@ const props = withDefaults(defineProps<Props>(), {
|
||||
showDisabled: false,
|
||||
ruleData: {},
|
||||
data: {},
|
||||
formAttrs: {},
|
||||
});
|
||||
|
||||
watch(() => props.data, (data: any) => {
|
||||
@@ -61,12 +63,11 @@ onMounted(() => {
|
||||
});
|
||||
|
||||
const formatDataFun = (data: any) => {
|
||||
const formatData = cloneDeep(data);
|
||||
data.extras?.forEach((item: any) => {
|
||||
const { propertyName, propertyValue } = item;
|
||||
formatData[propertyName] = propertyValue;
|
||||
data[propertyName] = propertyValue;
|
||||
});
|
||||
return formatData;
|
||||
return data;
|
||||
};
|
||||
|
||||
const formData = ref<any>(formatDataFun(props.data));
|
||||
|
||||
@@ -201,7 +201,7 @@ const editData = ref<any>({});
|
||||
const chosenData = ref<any>([]);
|
||||
const BaseTableRef = ref();
|
||||
const fileData = ref<any>({});
|
||||
const nodeType = ref('');
|
||||
const nodeType = ref<any>('');
|
||||
|
||||
onMounted(() => {
|
||||
getAllTemplateFun();
|
||||
@@ -331,7 +331,7 @@ const searchFileFun = (data: any) => {
|
||||
};
|
||||
|
||||
const addNodeFun = (data: any) => {
|
||||
if (nodeType.value === NODE_TYPE.CATEGORY) {
|
||||
if ([NODE_TYPE.CATEGORY, NODE_TYPE.WORKSPACE].includes(nodeType.value)) {
|
||||
addClassFun(data);
|
||||
}
|
||||
if (nodeType.value === NODE_TYPE.TASK) {
|
||||
|
||||
54
src/views/index/approvalPreview/components/parameter.vue
Normal file
54
src/views/index/approvalPreview/components/parameter.vue
Normal file
@@ -0,0 +1,54 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<div class="table">
|
||||
<BaseTable ref="baseTableRef" tableName="PARAMETER_LIST" hidePagination />
|
||||
</div>
|
||||
<div class="info">
|
||||
<el-descriptions class="info-content-descriptions" :column="1" label-width="100px" border>
|
||||
<el-descriptions-item v-if="baseInfo?.parameterLibraryCategoryObjectName" label="对象名称">{{ baseInfo?.parameterLibraryCategoryObjectName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属库">{{ baseInfo?.parameterLibraryName }}</el-descriptions-item>
|
||||
<el-descriptions-item v-if="baseInfo?.parameterLibraryCategoryName" label="所属分类">{{ baseInfo?.parameterLibraryCategoryName }}</el-descriptions-item>
|
||||
<el-descriptions-item v-if="baseInfo?.createTime" label="创建时间">{{ baseInfo?.createTime }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from 'vue';
|
||||
import BaseTable from '@/components/common/table/baseTable.vue';
|
||||
|
||||
interface Props {
|
||||
data: any;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
data: {},
|
||||
});
|
||||
|
||||
const baseTableRef = ref<any>();
|
||||
const baseInfo = ref<any>({});
|
||||
|
||||
onMounted(() => {
|
||||
const approveContents = JSON.parse(props.data.approveContents);
|
||||
const { paramData = {} } = approveContents;
|
||||
const { parameterJsonValue = [] } = paramData;
|
||||
baseTableRef.value.setDataFun(parameterJsonValue);
|
||||
baseInfo.value = paramData;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
display: flex;
|
||||
.table {
|
||||
flex: 1;
|
||||
padding-right: 20px;
|
||||
margin-right: 20px;
|
||||
border-right: solid 1px var(--el-border-color);
|
||||
}
|
||||
.info {
|
||||
width: 300px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -5,6 +5,7 @@
|
||||
<Knowledge v-else-if="data.approveType === 2" :data="data" />
|
||||
<FlowView type="approve" v-else-if="data.approveType === 3" :data="data" />
|
||||
<DeliverableFile v-else-if="data.approveType === 4" :data="data" />
|
||||
<Parameter v-else-if="data.approveType === 5" :data="data" />
|
||||
<div v-else>其他审核预览{{ data.cidFlowId }}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -18,6 +19,7 @@ import TaskPool from './components/taskPool.vue';
|
||||
import Knowledge from './components/knowledge.vue';
|
||||
import FlowView from '@/components/common/flow/flowView.vue';
|
||||
import DeliverableFile from './components/deliverableFile.vue';
|
||||
import Parameter from './components/parameter.vue';
|
||||
|
||||
const w: any = window;
|
||||
const $wujie: any = w.$wujie;
|
||||
|
||||
@@ -27,7 +27,7 @@ import { ref } from 'vue';
|
||||
import Dialog from '@/components/common/dialog/index.vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
|
||||
const emits = defineEmits(['close', 'createFn']);
|
||||
const emits = defineEmits(['close', 'createFun']);
|
||||
|
||||
const visible = ref(true);
|
||||
|
||||
@@ -44,7 +44,7 @@ const onConfirmFun = () => {
|
||||
ElMessage.warning('请输入参数库名称!');
|
||||
return;
|
||||
} else {
|
||||
emits('createFn', formData.value);
|
||||
emits('createFun', formData.value);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -3,38 +3,33 @@
|
||||
v-model="visible"
|
||||
show-footer
|
||||
diaTitle="新增参数对象"
|
||||
:width="400"
|
||||
:width="450"
|
||||
@close="closeFun"
|
||||
>
|
||||
<template #default>
|
||||
<el-form :model="formData" labelWidth="auto">
|
||||
<el-form-item label="参数库名称" >
|
||||
<el-input v-model="formData.parameterLibraryName" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="分类名称">
|
||||
<el-input v-model="formData.parameterLibraryCategoryName" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="参数对象名称">
|
||||
<el-input v-model="formData.parameterLibraryCategoryObjectName" ></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="参数文件">
|
||||
<TableForm
|
||||
ref="tableFormRef"
|
||||
tableName="PARAMETER_LIBRARY_FORM"
|
||||
:data="formData"
|
||||
showDisabled
|
||||
@change="changeFun"
|
||||
:formAttrs="{
|
||||
files: {
|
||||
accept: '.json'
|
||||
}
|
||||
}"
|
||||
/>
|
||||
<div class="tip">
|
||||
<el-tooltip
|
||||
placement="top"
|
||||
content="例:[{'parameterName': 'parameterName','parameterValue': 'parameterValue', 'unit': 'unit', 'description': 'description'}]"
|
||||
>
|
||||
<div class="tip">参数对象上传的JSON文件格式必须遵守格式要求,否则无法解析!</div>
|
||||
<el-icon class="icon" :size="16">
|
||||
<Warning />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
<el-tag v-if="formData.fileName" closable @close="deleteParamFile"> {{ formData.fileName }}</el-tag>
|
||||
<el-upload
|
||||
v-else
|
||||
:show-file-list="false"
|
||||
:before-upload="beforeUploadFun"
|
||||
accept=".json"
|
||||
>
|
||||
<el-button type="primary">上传参数文件</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span>参数对象上传的JSON文件格式必须遵守格式要求,否则无法解析!</span>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
@@ -46,53 +41,45 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, reactive } from 'vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
import Dialog from '@/components/common/dialog/index.vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import TableForm from '@/components/common/table/tableForm.vue';
|
||||
import { Warning } from '@element-plus/icons-vue';
|
||||
|
||||
const emits = defineEmits(['close', 'createFn']);
|
||||
const emits = defineEmits(['close', 'createFun']);
|
||||
const props = defineProps(['libTypeInfo']);
|
||||
const visible = ref(true);
|
||||
const formData = reactive<any>({
|
||||
parameterLibraryName: '',
|
||||
parameterLibraryCategoryName: '',
|
||||
parameterLibraryCategoryObjectName: '',
|
||||
file: {},
|
||||
fileName: '',
|
||||
});
|
||||
const tableFormRef = ref<any>();
|
||||
const formData = ref<any>({});
|
||||
|
||||
const closeFun = () => {
|
||||
emits('close');
|
||||
};
|
||||
|
||||
const onConfirmFun = () => {
|
||||
if (!formData.parameterLibraryCategoryObjectName) {
|
||||
ElMessage.warning('请输入参数类型名称!');
|
||||
return;
|
||||
} else if (!formData.fileName) {
|
||||
ElMessage.warning('请请上传对应参数文件');
|
||||
return;
|
||||
} else {
|
||||
emits('createFn', formData);
|
||||
const onConfirmFun = async() => {
|
||||
const valid = await tableFormRef.value?.validateFun();
|
||||
if (valid) {
|
||||
emits('createFun', formData.value);
|
||||
}
|
||||
};
|
||||
|
||||
const beforeUploadFun = (file: any) => {
|
||||
formData.file = file;
|
||||
formData.fileName = file.name;
|
||||
};
|
||||
|
||||
const deleteParamFile = () => {
|
||||
formData.fileName = '';
|
||||
formData.file = {};
|
||||
const changeFun = (data: any) => {
|
||||
const { key, val } = data;
|
||||
if (key === 'files') {
|
||||
formData.value.file = val.raw;
|
||||
formData.value.fileName = val.name;
|
||||
}
|
||||
if (key === 'templateId') {
|
||||
formData.value.templateName = val.label;
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
if (props.libTypeInfo) {
|
||||
formData.parameterLibraryName = props.libTypeInfo.libName;
|
||||
formData.parameterLibraryCategoryName = props.libTypeInfo.name;
|
||||
formData.parameterLibraryId = props.libTypeInfo.libId;
|
||||
formData.parameterLibraryCategoryId = props.libTypeInfo.id;
|
||||
formData.value.parameterLibraryName = props.libTypeInfo.libName;
|
||||
formData.value.parameterLibraryCategoryName = props.libTypeInfo.name;
|
||||
formData.value.parameterLibraryId = props.libTypeInfo.libId;
|
||||
formData.value.parameterLibraryCategoryId = props.libTypeInfo.id;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -109,9 +96,19 @@ onMounted(() => {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.tip {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
padding-bottom: 10px;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
color: var(--el-text-color-secondary);
|
||||
.icon {
|
||||
color: var(--el-color-danger);
|
||||
cursor: pointer;
|
||||
}
|
||||
span {
|
||||
padding-left: 4px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -30,7 +30,7 @@ import { ref, onMounted } from 'vue';
|
||||
import Dialog from '@/components/common/dialog/index.vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
|
||||
const emits = defineEmits(['close', 'createFn']);
|
||||
const emits = defineEmits(['close', 'createFun']);
|
||||
const props = defineProps(['libInfo']);
|
||||
const visible = ref(true);
|
||||
const formData = ref({
|
||||
@@ -47,7 +47,7 @@ const onConfirmFun = () => {
|
||||
ElMessage.warning('请输入参数类型名称!');
|
||||
return;
|
||||
} else {
|
||||
emits('createFn', {
|
||||
emits('createFun', {
|
||||
parameterLibraryCategoryName: formData.value.parameterLibraryCategoryName,
|
||||
parameterLibraryId: props.libInfo.id,
|
||||
});
|
||||
|
||||
@@ -62,19 +62,19 @@
|
||||
<addParamLib
|
||||
v-if="showParamLibVisible"
|
||||
@close="showParamLibVisible = false"
|
||||
@create-fn="createLibFun"
|
||||
@createFun="createLibFun"
|
||||
/>
|
||||
<addParamType
|
||||
v-if="showParamTypeVisible"
|
||||
@close="showParamTypeVisible = false"
|
||||
:lib-info="currentNode"
|
||||
@create-fn="createLibTypeFun"
|
||||
@createFun="createLibTypeFun"
|
||||
/>
|
||||
<addParamObject
|
||||
v-if="showParamObjVisible"
|
||||
@close="showParamObjVisible = false"
|
||||
:lib-type-info="currentNode"
|
||||
@create-fn="creatLibParamObjFun"
|
||||
@createFun="creatLibParamObjFun"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
@@ -158,7 +158,7 @@ const currentChangeFun = async(data: any) => {
|
||||
ObjectId: data.id,
|
||||
});
|
||||
if (res && res.code === 200) {
|
||||
paramObjInfo.value = res.data;
|
||||
paramObjInfo.value = res.data || [];
|
||||
paramTableRef.value.setDataFun( paramObjInfo.value.parameterJsonValue || []);
|
||||
}
|
||||
} else if (data.type === 2) {
|
||||
@@ -224,10 +224,12 @@ const creatLibParamObjFun = async(data: any) => {
|
||||
parameterLibraryCategoryObjectName: data.parameterLibraryCategoryObjectName,
|
||||
fileName: data.fileName,
|
||||
file: data.file,
|
||||
templateId: data.templateId,
|
||||
templateName: data.templateName,
|
||||
});
|
||||
|
||||
if (res && res.code === 200) {
|
||||
ElMessage.success('新增参数对象成功');
|
||||
ElMessage.success('操作成功');
|
||||
const list = await getSimulationParameterTreeDAtaFun(currentNode.value);
|
||||
const node = list.find((item: any) => {
|
||||
return item.name === data.parameterLibraryCategoryObjectName;
|
||||
|
||||
Reference in New Issue
Block a user