|
@@ -1,79 +1,85 @@
|
|
|
<template>
|
|
|
- <div class="report-add">
|
|
|
- <a-form :model="formStates" labelAlign="center" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
|
|
- <a-form-item label="所属部门编号:">
|
|
|
- <!-- <a-select v-model:value="formStates.sysOrgCode" placeholder="请选择...">
|
|
|
+ <div class="report-add">
|
|
|
+ <a-form :model="formStates" labelAlign="center" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
|
|
+ <a-form-item label="所属部门编号:">
|
|
|
+ <!-- <a-select v-model:value="formStates.sysOrgCode" placeholder="请选择...">
|
|
|
<a-select-option v-for="item in sysOrgCodeList" :key="item.value">{{ item.label }}</a-select-option>
|
|
|
</a-select> -->
|
|
|
- <a-tree-select v-model:value="formStates.sysOrgCode" show-search
|
|
|
- :dropdown-style="{ maxHeight: '200px', overflow: 'auto' }" placeholder="请选择部门..." allow-clear
|
|
|
- tree-default-expand-all :tree-data="sysOrgCodeList" tree-node-filter-prop="title">
|
|
|
- <template #title="{ value: val, title }">
|
|
|
- {{ title }}
|
|
|
- </template>
|
|
|
- </a-tree-select>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item label="数据名称:">
|
|
|
- <a-input v-model:value="formStates.name" placeholder="请输入..." />
|
|
|
- </a-form-item>
|
|
|
- <a-form-item label="集团报表单元格所在sheet页:">
|
|
|
- <a-input v-model:value="formStates.groupSheet" placeholder="请输入..." />
|
|
|
- </a-form-item>
|
|
|
- <a-form-item label="集团报表单元格所在列:">
|
|
|
- <a-input v-model:value="formStates.groupCol" placeholder="请输入..." />
|
|
|
- </a-form-item>
|
|
|
- <a-form-item label="集团报表单元格所在行:">
|
|
|
- <a-input v-model:value="formStates.groupRow" placeholder="请输入..." />
|
|
|
- </a-form-item>
|
|
|
- <a-form-item label="矿报表单元格:">
|
|
|
- <a-input v-model:value="formStates.sheet" placeholder="请输入sheet页,多个值中间用逗号隔开" style="width:189px;" />
|
|
|
- <a-input v-model:value="formStates.col" placeholder="请输入col列,多个值中间用逗号隔开"
|
|
|
- style="width:188px;margin:0px 10px" />
|
|
|
- <a-input v-model:value="formStates.row" placeholder="请输入row行,多个值中间用逗号隔开" style="width:189px" />
|
|
|
- </a-form-item>
|
|
|
- <a-form-item label="是否计算:">
|
|
|
- <a-radio-group v-model:value="formStates.isCompute" name="radioGroup">
|
|
|
- <a-radio :value=true>是</a-radio>
|
|
|
- <a-radio :value=false>否</a-radio>
|
|
|
- </a-radio-group>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item label="计算公式:">
|
|
|
- <JDictSelectTag v-model:value="formStates.formula" placeholder="请选择计算公式..." dictCode="report_formula" />
|
|
|
- </a-form-item>
|
|
|
- </a-form>
|
|
|
- <div class="confirm-btn">
|
|
|
- <a-button type="primary" @click="getConfirm" style="margin-right:15px">确定</a-button>
|
|
|
- <a-button type="plain" @click="getCancel">取消</a-button>
|
|
|
- </div>
|
|
|
+ <a-tree-select
|
|
|
+ v-model:value="formStates.sysOrgCode"
|
|
|
+ show-search
|
|
|
+ :dropdown-style="{ maxHeight: '200px', overflow: 'auto' }"
|
|
|
+ placeholder="请选择部门..."
|
|
|
+ allow-clear
|
|
|
+ tree-default-expand-all
|
|
|
+ :tree-data="sysOrgCodeList"
|
|
|
+ tree-node-filter-prop="title"
|
|
|
+ >
|
|
|
+ <template #title="{ value: val, title }">
|
|
|
+ {{ title }}
|
|
|
+ </template>
|
|
|
+ </a-tree-select>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="数据名称:">
|
|
|
+ <a-input v-model:value="formStates.name" placeholder="请输入..." />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="集团报表单元格所在sheet页:">
|
|
|
+ <a-input v-model:value="formStates.groupSheet" placeholder="请输入..." />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="集团报表单元格所在列:">
|
|
|
+ <a-input v-model:value="formStates.groupCol" placeholder="请输入..." />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="集团报表单元格所在行:">
|
|
|
+ <a-input v-model:value="formStates.groupRow" placeholder="请输入..." />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="矿报表单元格:">
|
|
|
+ <a-input v-model:value="formStates.sheet" placeholder="请输入sheet页,多个值中间用逗号隔开" style="width: 189px" />
|
|
|
+ <a-input v-model:value="formStates.col" placeholder="请输入col列,多个值中间用逗号隔开" style="width: 188px; margin: 0px 10px" />
|
|
|
+ <a-input v-model:value="formStates.row" placeholder="请输入row行,多个值中间用逗号隔开" style="width: 189px" />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="是否计算:">
|
|
|
+ <a-radio-group v-model:value="formStates.isCompute" name="radioGroup">
|
|
|
+ <a-radio :value="true">是</a-radio>
|
|
|
+ <a-radio :value="false">否</a-radio>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="计算公式:">
|
|
|
+ <JDictSelectTag v-model:value="formStates.formula" placeholder="请选择计算公式..." dictCode="report_formula" />
|
|
|
+ </a-form-item>
|
|
|
+ </a-form>
|
|
|
+ <div class="confirm-btn">
|
|
|
+ <a-button type="primary" @click="getConfirm" style="margin-right: 15px">确定</a-button>
|
|
|
+ <a-button type="plain" @click="getCancel">取消</a-button>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { ref, reactive, onMounted, watch } from 'vue'
|
|
|
-import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
|
|
-import { reportAdd, reportEdit } from '../reportManager.api'
|
|
|
+ import { ref, reactive, onMounted, watch } from 'vue';
|
|
|
+ import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
|
|
+ import { reportAdd, reportEdit } from '../reportManager.api';
|
|
|
|
|
|
-let props = defineProps({
|
|
|
+ let props = defineProps({
|
|
|
sysOrgCodeList: {
|
|
|
- type: Array,
|
|
|
- default: () => {
|
|
|
- return []
|
|
|
- }
|
|
|
+ type: Array,
|
|
|
+ default: () => {
|
|
|
+ return [];
|
|
|
+ },
|
|
|
},
|
|
|
formState: {
|
|
|
- type: Object,
|
|
|
- default: () => {
|
|
|
- return {}
|
|
|
- }
|
|
|
+ type: Object,
|
|
|
+ default: () => {
|
|
|
+ return {};
|
|
|
+ },
|
|
|
},
|
|
|
isToggle: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
- }
|
|
|
-})
|
|
|
+ type: String,
|
|
|
+ default: '',
|
|
|
+ },
|
|
|
+ });
|
|
|
|
|
|
-let formStates = reactive({
|
|
|
- id:'',
|
|
|
+ let formStates = reactive({
|
|
|
+ id: '',
|
|
|
sysOrgCode: '',
|
|
|
formula: '',
|
|
|
groupCol: '',
|
|
@@ -84,100 +90,117 @@ let formStates = reactive({
|
|
|
sheet: '',
|
|
|
col: '',
|
|
|
row: '',
|
|
|
- name: ''
|
|
|
-})
|
|
|
-let emit = defineEmits(['Close']);
|
|
|
-
|
|
|
-async function getConfirm() {
|
|
|
- let mineCells = []
|
|
|
- let paramRow = formStates.row.split(',')
|
|
|
- let paramCol = formStates.col.split(',')
|
|
|
- let paramSheet = formStates.sheet.split(',')
|
|
|
+ name: '',
|
|
|
+ });
|
|
|
+ let emit = defineEmits(['Close']);
|
|
|
+
|
|
|
+ async function getConfirm() {
|
|
|
+ let mineCells = [];
|
|
|
+ let paramRow = formStates.row.split(',');
|
|
|
+ let paramCol = formStates.col.split(',');
|
|
|
+ let paramSheet = formStates.sheet.split(',');
|
|
|
paramRow.forEach((el, index) => {
|
|
|
- mineCells.push({ sheet: paramSheet[index], col: paramCol[index], row: paramRow[index] })
|
|
|
- })
|
|
|
+ mineCells.push({ sheet: paramSheet[index], col: paramCol[index], row: paramRow[index] });
|
|
|
+ });
|
|
|
if (props.isToggle == 'add') {
|
|
|
- let res = await reportAdd({ sysOrgCode: formStates.sysOrgCode, formula: formStates.formula, groupCol: formStates.groupCol, groupRow: formStates.groupRow, groupSheet: formStates.groupSheet, isCompute: formStates.isCompute, mineCells: JSON.stringify(mineCells), name: formStates.name })
|
|
|
- console.log(res, '新增------------------')
|
|
|
- emit('Close');
|
|
|
-
|
|
|
+ let res = await reportAdd({
|
|
|
+ sysOrgCode: formStates.sysOrgCode,
|
|
|
+ formula: formStates.formula,
|
|
|
+ groupCol: formStates.groupCol,
|
|
|
+ groupRow: formStates.groupRow,
|
|
|
+ groupSheet: formStates.groupSheet,
|
|
|
+ isCompute: formStates.isCompute,
|
|
|
+ mineCells: JSON.stringify(mineCells),
|
|
|
+ name: formStates.name,
|
|
|
+ });
|
|
|
+ console.log(res, '新增------------------');
|
|
|
+ emit('Close');
|
|
|
} else {
|
|
|
- let res = await reportEdit({ id:formStates.id, sysOrgCode: formStates.sysOrgCode, formula: formStates.formula, groupCol: formStates.groupCol, groupRow: formStates.groupRow, groupSheet: formStates.groupSheet, isCompute: formStates.isCompute, mineCells: JSON.stringify(mineCells), name: formStates.name })
|
|
|
- console.log(res, '编辑------------------')
|
|
|
- emit('Close');
|
|
|
+ let res = await reportEdit({
|
|
|
+ id: formStates.id,
|
|
|
+ sysOrgCode: formStates.sysOrgCode,
|
|
|
+ formula: formStates.formula,
|
|
|
+ groupCol: formStates.groupCol,
|
|
|
+ groupRow: formStates.groupRow,
|
|
|
+ groupSheet: formStates.groupSheet,
|
|
|
+ isCompute: formStates.isCompute,
|
|
|
+ mineCells: JSON.stringify(mineCells),
|
|
|
+ name: formStates.name,
|
|
|
+ });
|
|
|
+ console.log(res, '编辑------------------');
|
|
|
+ emit('Close');
|
|
|
}
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-watch(() => props.formState, (newV) => {
|
|
|
- formStates = Object.assign(formStates, newV)
|
|
|
- let row = []
|
|
|
- let col = []
|
|
|
- let sheet = []
|
|
|
- if (props.isToggle == 'edit') {
|
|
|
- JSON.parse(formStates.mineCells).forEach(el => {
|
|
|
- row.push(el.row)
|
|
|
- col.push(el.col)
|
|
|
- sheet.push(el.sheet)
|
|
|
- })
|
|
|
- formStates.col = col.join(',')
|
|
|
- formStates.row = row.join(',')
|
|
|
- formStates.sheet = sheet.join(',')
|
|
|
+ }
|
|
|
+
|
|
|
+ watch(
|
|
|
+ () => props.formState,
|
|
|
+ (newV) => {
|
|
|
+ formStates = Object.assign(formStates, newV);
|
|
|
+ let row = [];
|
|
|
+ let col = [];
|
|
|
+ let sheet = [];
|
|
|
+ if (props.isToggle == 'edit') {
|
|
|
+ JSON.parse(formStates.mineCells).forEach((el) => {
|
|
|
+ row.push(el.row);
|
|
|
+ col.push(el.col);
|
|
|
+ sheet.push(el.sheet);
|
|
|
+ });
|
|
|
+ formStates.col = col.join(',');
|
|
|
+ formStates.row = row.join(',');
|
|
|
+ formStates.sheet = sheet.join(',');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ immediate: true,
|
|
|
+ deep: true,
|
|
|
}
|
|
|
+ );
|
|
|
|
|
|
-}, {
|
|
|
- immediate: true,
|
|
|
- deep: true
|
|
|
-})
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-onMounted(() => { })
|
|
|
-
|
|
|
+ onMounted(() => {});
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-.report-add {
|
|
|
+ .report-add {
|
|
|
position: relative;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
padding: 10px;
|
|
|
- box-sizing: border-box
|
|
|
-}
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
|
|
|
-.zxm-form {
|
|
|
+ .zxm-form {
|
|
|
width: 80%;
|
|
|
margin: 0px auto;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-.confirm-btn {
|
|
|
+ .confirm-btn {
|
|
|
width: 100%;
|
|
|
margin: 10px 0px;
|
|
|
text-align: center;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-:deep(.zxm-form-item-label > label) {
|
|
|
+ :deep(.zxm-form-item-label > label) {
|
|
|
color: #fff;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-:deep(.zxm-select-selector) {
|
|
|
+ :deep(.zxm-select-selector) {
|
|
|
width: 100%;
|
|
|
color: #fff;
|
|
|
border: 1px solid #3ad8ff77 !important;
|
|
|
background-color: #ffffff00 !important;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-:deep(.zxm-select-selection-item) {
|
|
|
+ :deep(.zxm-select-selection-item) {
|
|
|
color: #fff !important;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-:deep(.zxm-select-selection-placeholder) {
|
|
|
+ :deep(.zxm-select-selection-placeholder) {
|
|
|
color: #ccc !important;
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
-:deep(.zxm-input) {
|
|
|
+ :deep(.zxm-input) {
|
|
|
color: #fff;
|
|
|
border: 1px solid #3ad8ff77 !important;
|
|
|
background-color: #ffffff00 !important;
|
|
|
-}
|
|
|
-</style>
|
|
|
+ }
|
|
|
+</style>
|