|
@@ -12,6 +12,7 @@ import { Edit } from "@element-plus/icons-vue";
|
|
|
import { ElMessageBox, ElMessage } from "element-plus";
|
|
|
import { postAddRelationList, postUpdateDept } from "@/api/dimension";
|
|
|
import { useAppStoreHook } from "@/store/modules/app";
|
|
|
+import { addQuota } from "@/api/indexDefine";
|
|
|
import {
|
|
|
postAddDimension,
|
|
|
getDimensionRemove,
|
|
@@ -24,7 +25,7 @@ import {
|
|
|
type DraggableEvent,
|
|
|
type UseDraggableReturn
|
|
|
} from "vue-draggable-plus";
|
|
|
-import { delQuota } from "@/api/indexDefine";
|
|
|
+import { delQuota, postAddDisposableQuota } from "@/api/indexDefine";
|
|
|
import settingIndexDrawer from "./settingIndexDrawer.vue";
|
|
|
import {
|
|
|
postAddTemplate,
|
|
@@ -88,10 +89,11 @@ const postAddTemplateApi = async () => {
|
|
|
// 考核维度卡片
|
|
|
const eaxmCard = ref([]);
|
|
|
// 获取维度
|
|
|
-const getListByApi = async () => {
|
|
|
- console.log(tepNameForm.id, "触发getListByApi", tepNameForm);
|
|
|
+const getListByApi = async (id?: number | string) => {
|
|
|
+ eaxmCard.value = [];
|
|
|
const obj = {
|
|
|
- tpId: tepNameForm.id
|
|
|
+ tpId: tepNameForm.id,
|
|
|
+ id
|
|
|
};
|
|
|
const { code, data, msg } = await getListBy(obj);
|
|
|
if (code === 200) {
|
|
@@ -245,7 +247,6 @@ const deletePen = item => {
|
|
|
const { code, msg } = await getDimensionRemove(item.id);
|
|
|
if (code === 200) {
|
|
|
getListByApi();
|
|
|
- // getListByApi();
|
|
|
ElMessage({
|
|
|
type: "success",
|
|
|
message: "删除成功"
|
|
@@ -272,23 +273,28 @@ const importIndexOne = async row => {
|
|
|
let formula = JSON.stringify({
|
|
|
noConditionFormula: ""
|
|
|
});
|
|
|
- const res = await postAddRelationList([
|
|
|
- {
|
|
|
- dimId: row.id,
|
|
|
- indId: row.tpId,
|
|
|
- tpId: "",
|
|
|
- formula,
|
|
|
- scoreStandard: 0
|
|
|
+ const { code, data, msg } = await postAddDisposableQuota();
|
|
|
+ if ((code = 200)) {
|
|
|
+ const res = await postAddRelationList([
|
|
|
+ {
|
|
|
+ dimId: row.id,
|
|
|
+ indId: row.tpId,
|
|
|
+ tpId: data.id,
|
|
|
+ formula,
|
|
|
+ scoreStandard: 0
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ if (res.code === 200) {
|
|
|
+ initializeTableData(row);
|
|
|
+ ElMessage({
|
|
|
+ type: "success",
|
|
|
+ message: "添加成功"
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ElMessage.error(res.msg);
|
|
|
}
|
|
|
- ]);
|
|
|
- if (res.code === 200) {
|
|
|
- initializeTableData(row);
|
|
|
- ElMessage({
|
|
|
- type: "success",
|
|
|
- message: "添加成功"
|
|
|
- });
|
|
|
} else {
|
|
|
- ElMessage.error(res.msg);
|
|
|
+ ElMessage.error(msg);
|
|
|
}
|
|
|
};
|
|
|
// 拖拽
|
|
@@ -311,15 +317,7 @@ const onEnd = (e: DraggableEvent) => {
|
|
|
const onStart = (e: DraggableEvent) => {};
|
|
|
|
|
|
const onUpdate = (e: DraggableEvent) => {};
|
|
|
-// 子表格拖拽
|
|
|
-const postUpdateApi = async (dimId, indId, order) => {
|
|
|
- await postUpdate({
|
|
|
- tpId: tepNameForm.id,
|
|
|
- dimId,
|
|
|
- indId,
|
|
|
- order
|
|
|
- });
|
|
|
-};
|
|
|
+
|
|
|
// const { start } = useDraggable(elDraggableTableData, eaxmCard.tableData, {
|
|
|
// animation: 150,
|
|
|
// ghostClass: "ghost",
|
|
@@ -337,6 +335,64 @@ const postUpdateApi = async (dimId, indId, order) => {
|
|
|
// postUpdateApi(id, item.id, index + 1);
|
|
|
// });
|
|
|
// };
|
|
|
+// 指标更新
|
|
|
+// const postUpdateApi = async (dimId, indId, order) => {
|
|
|
+// await postUpdate({
|
|
|
+// tpId: tepNameForm.id,
|
|
|
+// dimId,
|
|
|
+// indId,
|
|
|
+// order
|
|
|
+// });
|
|
|
+// };
|
|
|
+const postUpdateApi = async () => {
|
|
|
+ const { code, msg } = await postUpdate(indexOf);
|
|
|
+ if (code == 200) {
|
|
|
+ getListByApi(indexOf.dimId);
|
|
|
+ ElMessage.success("编辑成功");
|
|
|
+ } else {
|
|
|
+ ElMessage.error(msg);
|
|
|
+ }
|
|
|
+};
|
|
|
+const indexOf = reactive({
|
|
|
+ id: "",
|
|
|
+ tpId: "",
|
|
|
+ dimId: "",
|
|
|
+ indId: "",
|
|
|
+ valueInput: 0,
|
|
|
+ designatedPersonnel: "",
|
|
|
+ scoreStandard: 0,
|
|
|
+ remark: "",
|
|
|
+ createUser: "",
|
|
|
+ createTime: 0,
|
|
|
+ updateUser: "",
|
|
|
+ updateTime: 0,
|
|
|
+ isDelete: 0,
|
|
|
+ scoreRule: "",
|
|
|
+ targetValue: 0,
|
|
|
+ finalValue: 0,
|
|
|
+ challengeValue: 0,
|
|
|
+ startValue: 0,
|
|
|
+ datasoure: "",
|
|
|
+ weight: 0,
|
|
|
+ scoreValue: 0,
|
|
|
+ formula: "",
|
|
|
+ formulaType: 0,
|
|
|
+ order: 0,
|
|
|
+ indName: ""
|
|
|
+});
|
|
|
+const editConfig = ref<any>({
|
|
|
+ trigger: "click",
|
|
|
+ mode: "cell"
|
|
|
+});
|
|
|
+const tableVxeRef = ref();
|
|
|
+const editClosedEvent = ({ row, column }) => {
|
|
|
+ const $table = tableVxeRef.value;
|
|
|
+ if ($table) {
|
|
|
+ Object.assign(indexOf, row);
|
|
|
+ postUpdateApi();
|
|
|
+ }
|
|
|
+};
|
|
|
+// const aa =
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
@@ -345,7 +401,7 @@ const postUpdateApi = async (dimId, indId, order) => {
|
|
|
<importIndex
|
|
|
ref="importIndexRef"
|
|
|
v-model="importIndexShow"
|
|
|
- @handClickInit="initializeTableData"
|
|
|
+ @handClickInit="getListByApi"
|
|
|
/>
|
|
|
<!-- 指标设置 -->
|
|
|
<settingIndexDrawer
|
|
@@ -446,70 +502,96 @@ const postUpdateApi = async (dimId, indId, order) => {
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
- <el-table
|
|
|
- :data="item.tableData"
|
|
|
- style="width: 100%"
|
|
|
- max-height="250"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- ref="elDraggableTableData"
|
|
|
- fixed
|
|
|
- prop="name"
|
|
|
- label="指标名称"
|
|
|
- >
|
|
|
+ <!-- <el-table :data="item.tableData" style="width: 100%" max-height="250">
|
|
|
+ <el-table-column ref="elDraggableTableData" fixed prop="name" label="指标名称">
|
|
|
<template #default="{ row }">
|
|
|
<div>{{ row.name }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
+ <el-table-column v-if="item.showIndicRemark" prop="remark" label="指标说明" width="120" />
|
|
|
+ <el-table-column v-if="item.showScoreRule" prop="scoreRule" label="评价标准" width="300" />
|
|
|
+ <el-table-column v-if="item.showDatasource" prop="stshowDatasourceate" label="数据来源" width="120" />
|
|
|
+ <el-table-column v-if="item.mode" prop="weight" label="权重" width="120" />
|
|
|
+ <el-table-column v-if="item.showTargetValue" prop="targetValue" label="目标值" width="120" />
|
|
|
+ <el-table-column v-if="item.showFinalValue" prop="finalValue" label="完成值" width="120" />
|
|
|
+ <el-table-column v-if="item.showChallengeValue" prop="challengeValue" label="挑战值" width="120" />
|
|
|
+ <el-table-column v-if="item.showStartValue" prop="startValue" label="门槛值" width="120" />
|
|
|
+ <el-table-column fixed="right" label="操作">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-icon class="mr-3" @click="settingIndex(row)">
|
|
|
+ <Setting />
|
|
|
+ </el-icon>
|
|
|
+ <el-icon @click="deleteRow(row)">
|
|
|
+ <Delete class="text-red-500" />
|
|
|
+ </el-icon>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table> -->
|
|
|
+ <vxe-table
|
|
|
+ ref="tableVxeRef"
|
|
|
+ border
|
|
|
+ show-overflow
|
|
|
+ :edit-config="editConfig"
|
|
|
+ :data="item.tableData"
|
|
|
+ max-height="250"
|
|
|
+ @edit-closed="editClosedEvent"
|
|
|
+ >
|
|
|
+ <vxe-column
|
|
|
+ field="name"
|
|
|
+ fixed
|
|
|
+ title="指标名称"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
+ />
|
|
|
+ <vxe-column
|
|
|
v-if="item.showIndicRemark"
|
|
|
- prop="remark"
|
|
|
- label="指标说明"
|
|
|
- width="120"
|
|
|
+ field="remark"
|
|
|
+ title="指标说明"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
+ <vxe-column
|
|
|
v-if="item.showScoreRule"
|
|
|
- prop="scoreRule"
|
|
|
- label="评价标准"
|
|
|
+ field="scoreRule"
|
|
|
+ title="评价标准"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
width="300"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
+ <vxe-column
|
|
|
v-if="item.showDatasource"
|
|
|
- prop="stshowDatasourceate"
|
|
|
- label="数据来源"
|
|
|
- width="120"
|
|
|
+ field="stshowDatasourceate"
|
|
|
+ title="数据来源"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
+ <vxe-column
|
|
|
v-if="item.mode"
|
|
|
- prop="weight"
|
|
|
- label="权重"
|
|
|
- width="120"
|
|
|
+ field="weight"
|
|
|
+ title="权重"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
+ <vxe-column
|
|
|
v-if="item.showTargetValue"
|
|
|
- prop="targetValue"
|
|
|
- label="目标值"
|
|
|
- width="120"
|
|
|
+ field="targetValue"
|
|
|
+ title="目标值"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
+ <vxe-column
|
|
|
v-if="item.showFinalValue"
|
|
|
- prop="finalValue"
|
|
|
- label="完成值"
|
|
|
- width="120"
|
|
|
+ field="finalValue"
|
|
|
+ title="完成值"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
+ <vxe-column
|
|
|
v-if="item.showChallengeValue"
|
|
|
- prop="challengeValue"
|
|
|
- label="挑战值"
|
|
|
- width="120"
|
|
|
+ field="challengeValue"
|
|
|
+ title="挑战值"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
/>
|
|
|
- <el-table-column
|
|
|
+ <vxe-column
|
|
|
v-if="item.showStartValue"
|
|
|
- prop="startValue"
|
|
|
- label="门槛值"
|
|
|
- width="120"
|
|
|
+ field="startValue"
|
|
|
+ title="门槛值"
|
|
|
+ :edit-render="{ name: 'input' }"
|
|
|
/>
|
|
|
- <el-table-column fixed="right" label="操作">
|
|
|
+ <vxe-column field="age" fixed="right" title="操作">
|
|
|
<template #default="{ row }">
|
|
|
<el-icon class="mr-3" @click="settingIndex(row)">
|
|
|
<Setting />
|
|
@@ -518,8 +600,8 @@ const postUpdateApi = async (dimId, indId, order) => {
|
|
|
<Delete class="text-red-500" />
|
|
|
</el-icon>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ </vxe-column>
|
|
|
+ </vxe-table>
|
|
|
<template #footer>
|
|
|
<el-button
|
|
|
type="primary"
|