601 lines
20 KiB
Plaintext
601 lines
20 KiB
Plaintext
<script setup lang="ts">
|
|
import AppBlock from '@/components/AppBlock.vue'
|
|
import HomeHead from '@/views/home/components/HomeHead.vue'
|
|
import HomeHeadSearch from '@/views/home/components/HomeHeadSearch.vue'
|
|
import { useMessage, NModal, NSelect } from 'naive-ui'
|
|
import { useUserStore } from '@/stores/modules/user'
|
|
import UserList from '@/views/home/intelligence/process/UserPages.vue'
|
|
import zhCn from 'element-plus/dist/locale/zh-cn'
|
|
import { computed, ref } from 'vue'
|
|
|
|
import { getHomeList, statDel, getTreeList,statEdit,updateAmount,amountList } from '@/api/daikin/base'
|
|
|
|
|
|
const locale = computed(() => zhCn)
|
|
const message = useMessage()
|
|
const store = useUserStore()
|
|
const header = { 'token': store.user.token }
|
|
|
|
const dataA = ref([])
|
|
const dataB = ref([])
|
|
const dataC = ref([])
|
|
|
|
const editA = ref()
|
|
const editB = ref()
|
|
const editC = ref()
|
|
|
|
|
|
const shomkA = ref(false)
|
|
const shomkB = ref(false)
|
|
const shomkC = ref(false)
|
|
|
|
async function getDataA() {
|
|
const {data: dataArr} = await getTreeList({number: 'DIS'})
|
|
dataA.value = dataArr.map(item => {
|
|
if (item.childList) {
|
|
item.childList = item.childList.map(it => {
|
|
it.second = true;
|
|
return it;
|
|
})
|
|
}
|
|
return item;
|
|
})
|
|
}
|
|
async function getDataB() {
|
|
const {data: dataBrr} = await getTreeList({number: 'DSZ'})
|
|
dataB.value = dataBrr.map(item => {
|
|
if (item.childList) {
|
|
item.childList = item.childList.map(it => {
|
|
it.second = true;
|
|
return it;
|
|
})
|
|
}
|
|
return item;
|
|
})
|
|
}
|
|
async function getDataC() {
|
|
const {data: dataCrr} = await getTreeList({number: 'DISH'})
|
|
dataC.value = dataCrr.map(item => {
|
|
if (item.childList) {
|
|
item.childList = item.childList.map(it => {
|
|
it.second = true;
|
|
return it;
|
|
})
|
|
}
|
|
return item;
|
|
})
|
|
}
|
|
const dataDIS = ref()
|
|
const dataDSZ = ref()
|
|
const dataDISH = ref()
|
|
onMounted(async () => {
|
|
getDataA();
|
|
getDataB();
|
|
getDataC();
|
|
getFazhu()
|
|
})
|
|
|
|
const getFazhu=async ()=>{
|
|
const { data:fazhu} = await amountList()
|
|
fazhu.forEach((i: { number: string; amount: any }) => {
|
|
if(i.number=='DIS'){
|
|
dataDIS.value = i.amount
|
|
}
|
|
if(i.number=='DSZ'){
|
|
dataDSZ.value = i.amount
|
|
}
|
|
if(i.number=='DISH'){
|
|
dataDISH.value = i.amount
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
|
|
function computedName(title) {
|
|
let index = title.indexOf(".");
|
|
if (index > -1) {
|
|
return title.slice(0, index - 1);
|
|
}
|
|
return title;
|
|
}
|
|
|
|
async function onSubmitA(row) {
|
|
var { code, msg } = await statEdit({
|
|
number: "DIS",
|
|
...row
|
|
})
|
|
|
|
if (code === 200) { message.success("修改成功!") }
|
|
else { message.error(msg) }
|
|
shomkA.value = false
|
|
getDataA();
|
|
}
|
|
|
|
async function onSubmitB(row) {
|
|
var { code, msg } = await statEdit({
|
|
number: "Cu",
|
|
...row
|
|
})
|
|
|
|
if (code === 200) { message.success("修改成功!") }
|
|
else { message.error(msg) }
|
|
shomkB.value = false
|
|
|
|
getDataB();
|
|
}
|
|
|
|
async function onSubmitC(row) {
|
|
var { code, msg } = await statEdit({
|
|
number: "Al",
|
|
...row
|
|
})
|
|
|
|
if (code === 200) { message.success("修改成功!") }
|
|
else { message.error(msg) }
|
|
shomkC.value = false
|
|
getDataC()
|
|
}
|
|
|
|
|
|
const handleEditA = (type: string, row: any) => {
|
|
editA.value = {
|
|
type: type,
|
|
number: "DIS",
|
|
id: "",
|
|
pid: undefined,
|
|
stDate: undefined,
|
|
themeValue: undefined,
|
|
marketValue: undefined,
|
|
weitiValue: undefined,
|
|
}
|
|
shomkA.value = true
|
|
if (!row) return
|
|
if (type === "edit") {
|
|
for (let key in row) {
|
|
editA.value[key] = row[key];
|
|
}
|
|
}
|
|
else {
|
|
editA.value.pid = row.id;
|
|
}
|
|
if (type === "edit") {
|
|
if (row.stDate.length === 4) editA.value.type = "addYear";
|
|
else editA.value.type = "add";
|
|
}
|
|
|
|
}
|
|
const handleEditB = (type: string, row: any) => {
|
|
editB.value = {
|
|
type: type,
|
|
number: "DSZ",
|
|
id: "",
|
|
pid: undefined,
|
|
stDate: undefined,
|
|
themeValue: undefined,
|
|
marketValue: undefined,
|
|
weitiValue: undefined,
|
|
}
|
|
shomkB.value = true
|
|
if (!row) return
|
|
if (type === "edit") {
|
|
for (let key in row) {
|
|
editB.value[key] = row[key];
|
|
}
|
|
}
|
|
else {
|
|
editB.value.pid = row.id;
|
|
}
|
|
if (type === "edit") {
|
|
if (row.stDate.length === 4) editB.value.type = "addYear";
|
|
else editB.value.type = "add";
|
|
}
|
|
}
|
|
const handleEditC = (type: string, row: any) => {
|
|
editC.value = {
|
|
type: type,
|
|
number: "DISH",
|
|
id: "",
|
|
pid: undefined,
|
|
stDate: undefined,
|
|
themeValue: undefined,
|
|
marketValue: undefined,
|
|
weitiValue: undefined,
|
|
}
|
|
shomkC.value = true
|
|
if (!row) return
|
|
if (type === "edit") {
|
|
for (let key in row) {
|
|
editC.value[key] = row[key];
|
|
}
|
|
}
|
|
else {
|
|
editC.value.pid = row.id;
|
|
}
|
|
|
|
if (type === "edit") {
|
|
if (row.stDate.length === 4) editC.value.type = "addYear";
|
|
else editC.value.type = "add";
|
|
}
|
|
}
|
|
|
|
|
|
async function handleDeleteA(index: number, row: any) {
|
|
const { id } = row
|
|
if (!id) return
|
|
const { code, msg } = await statDel({ id })
|
|
if (code === 200) { message.success("删除成功!") }
|
|
else { message.error(msg) }
|
|
getDataA();
|
|
}
|
|
async function handleDeleteB(index: number, row: any) {
|
|
const { id } = row
|
|
if (!id) return
|
|
const { code, msg } = await statDel({ id })
|
|
if (code === 200) { message.success("删除成功!") }
|
|
else { message.error(msg) }
|
|
|
|
getDataB();
|
|
}
|
|
async function handleDeleteC(index: number, row: any) {
|
|
|
|
const { id } = row
|
|
if (!id) return
|
|
const { code, msg } = await statDel({ id })
|
|
if (code === 200) { message.success("删除成功!") }
|
|
else { message.error(msg) }
|
|
getDataC()
|
|
}
|
|
|
|
const activeName = ref("DIS")
|
|
const userList = ref()
|
|
const showModal = ref(false)
|
|
const flg = ref()
|
|
const setUserList =ref()
|
|
async function getUser(moduleId: any) {
|
|
showModal.value = !showModal.value
|
|
flg.value = moduleId
|
|
const {data: userArr} = await getBPCUser({moduleId})
|
|
setUserList.value = userArr
|
|
|
|
}
|
|
// 获取子组件传过来的值
|
|
const handleChild = (data: any) => {
|
|
console.log(data, 444);
|
|
const { showModal: show, multipleSelection } = data
|
|
showModal.value = unref(show)
|
|
// userList.value = multipleSelection
|
|
let userIdList: any[] =[]
|
|
multipleSelection.value.forEach((i: { userId: any })=>{
|
|
// console.log(dataList.value)
|
|
userIdList.push(i.userId)
|
|
})
|
|
|
|
BPCSaveUser({
|
|
moduleId: flg.value,
|
|
userIdList: userIdList
|
|
})
|
|
}
|
|
const CloseThiss = (data: boolean)=>{
|
|
showModal.value = data
|
|
}
|
|
const shomkD =ref(false)
|
|
const fazhus = ref()
|
|
const numbers = ref()
|
|
const fazhu= (str: any,number: any ) =>{
|
|
numbers.value = str
|
|
fazhus.value = number
|
|
shomkD.value = true
|
|
|
|
}
|
|
const submitFazhu=async()=>{
|
|
const number = numbers.value
|
|
const amount = fazhus.value
|
|
console.log(typeof(number),typeof(amount))
|
|
const {code,msg} = await updateAmount({number,amount})
|
|
if (code === 200) {
|
|
shomkD.value = false
|
|
message.success("修改成功")
|
|
getFazhu()
|
|
}
|
|
else message.warning(msg)
|
|
}
|
|
</script>
|
|
<template>
|
|
<HomeHead class="top">
|
|
<template #content>
|
|
<!-- <HomeHeadSearch /> -->
|
|
</template>
|
|
</HomeHead>
|
|
<AppBlock class="w-full h950px p30px text-#000">
|
|
<div class="font-600 flex items-center">
|
|
<!-- <img src="./images/logo.svg" class="h56px mr21px" /> -->
|
|
<div class="text-36px text-#000">数据平台管理</div>
|
|
</div>
|
|
<el-tabs type="card" v-model="activeName" class="demo-tabs mt30px text-20px" @tab-click="handleClick">
|
|
<el-tab-pane name="DIS">
|
|
<template #label>
|
|
<span class="custom-tabs-label">
|
|
|
|
<span class="text-20px">DIS</span>
|
|
</span>
|
|
</template>
|
|
<div class=" cont relative w100% h800px overflow-y-auto">
|
|
<el-button type="primary" @click="handleEditA('addYear')" class="my20px">新增</el-button>
|
|
<span class="text-18px ml-20px"> 发注金额:{{dataDIS||0}} 百万元</span>
|
|
<el-button type="primary" @click="fazhu('DIS',dataDIS)" class="my20px ml-10px">{{activeName}}发注金额修改</el-button>
|
|
<!-- <el-button type="primary" @click="getUser(1)" > 查看范围</el-button> -->
|
|
<el-table :data="dataA" style="width: 95%"
|
|
row-key="id"
|
|
border
|
|
:tree-props="{ children: 'childList' }"
|
|
:header-cell-style="{ background:'#2A7BF7',color:'#fff',height:'60px',textAlign: 'center','font-size':'24px'}"
|
|
:cell-style="{ 'text-align': 'center'}">
|
|
|
|
<el-table-column label="时间" prop="stDate" />
|
|
<el-table-column label="C/D-交涉(%)" prop="negValue" />
|
|
<el-table-column label="C/D-THEME(%)" prop="themeValue" />
|
|
<el-table-column label="市况(%)" prop="marketValue" />
|
|
<el-table-column label="为替(%)" prop="weitiValue" />
|
|
<el-table-column label="操作" width="260px">
|
|
<template #default="scope">
|
|
<el-button size="small" type="primary" @click="handleEditA('add', scope.row)" v-if="!scope.row.second">新增数据</el-button>
|
|
<el-button size="small" @click="handleEditA('edit', scope.row)">编辑</el-button>
|
|
<el-button size="small" type="danger" @click="handleDeleteA(scope.$index, scope.row)">删除</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane name="DSZ">
|
|
<template #label>
|
|
<span class="custom-tabs-label">
|
|
<span class="text-20px">DSZ</span>
|
|
</span>
|
|
</template>
|
|
<div>
|
|
<el-button type="primary" @click="handleEditB('addYear')" class="my20px">新增</el-button>
|
|
<span class="text-18px ml-20px"> 发注金额:{{dataDSZ||0}} 百万元</span>
|
|
<el-button type="primary" @click="fazhu('DSZ',dataDSZ)" class="my20px ml-10px">{{activeName}}发注金额修改</el-button>
|
|
<!-- <el-button type="primary" @click="getUser(2)" > 查看范围</el-button> -->
|
|
<el-table :data="dataB" style="width: 95%"
|
|
row-key="id"
|
|
border
|
|
:tree-props="{ children: 'childList' }"
|
|
:header-cell-style="{ background:'#2A7BF7',color:'#fff',height:'60px',textAlign: 'center','font-size':'24px'}"
|
|
:cell-style="{ 'text-align': 'center'}">
|
|
|
|
<el-table-column label="时间" prop="stDate" />
|
|
<el-table-column label="C/D-交涉(%)" prop="negValue" />
|
|
<el-table-column label="C/D-THEME(%)" prop="themeValue" />
|
|
<el-table-column label="市况(%)" prop="marketValue" />
|
|
<el-table-column label="为替(%)" prop="weitiValue" />
|
|
<el-table-column label="操作" width="260px">
|
|
<template #default="scope">
|
|
<el-button size="small" type="primary" @click="handleEditB('add', scope.row)" v-if="!scope.row.second">新增数据</el-button>
|
|
<el-button size="small" @click="handleEditB('edit', scope.row)">编辑</el-button>
|
|
<el-button size="small" type="danger" @click="handleDeleteB(scope.$index, scope.row)">删除</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</el-tab-pane>
|
|
|
|
<el-tab-pane name="DISH">
|
|
<template #label>
|
|
<span class="custom-tabs-label">
|
|
|
|
<span class="text-20px">DISH</span>
|
|
</span>
|
|
</template>
|
|
|
|
<div>
|
|
<el-button type="primary" @click="handleEditC('addYear')" class="my20px">新增</el-button>
|
|
<span class="text-18px ml-20px"> 发注金额:{{dataDISH||0}} 百万元</span>
|
|
<el-button type="primary" @click="fazhu('DISH',dataDISH)" class="my20px ml-10px">{{activeName}}发注金额修改</el-button>
|
|
<!-- <el-button type="primary" @click="getUser(3)" > 查看范围</el-button> -->
|
|
<el-table :data="dataC" style="width: 95%"
|
|
row-key="id"
|
|
border
|
|
:tree-props="{ children: 'childList' }"
|
|
:header-cell-style="{ background:'#2A7BF7',color:'#fff',height:'60px',textAlign: 'center','font-size':'24px'}"
|
|
:cell-style="{ 'text-align': 'center'}">
|
|
|
|
<el-table-column label="时间" prop="stDate" />
|
|
<el-table-column label="C/D-交涉(%)" prop="negValue" />
|
|
<el-table-column label="C/D-THEME(%)" prop="themeValue" />
|
|
<el-table-column label="市况(%)" prop="marketValue" />
|
|
<el-table-column label="为替(%)" prop="weitiValue" />
|
|
<el-table-column label="操作" width="260px">
|
|
<template #default="scope">
|
|
<el-button size="small" type="primary" @click="handleEditC('add', scope.row)" v-if="!scope.row.second">新增数据</el-button>
|
|
<el-button size="small" @click="handleEditC('edit', scope.row)">编辑</el-button>
|
|
<el-button size="small" type="danger" @click="handleDeleteC(scope.$index, scope.row)">删除</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
<el-form-item>
|
|
</el-form-item>
|
|
</AppBlock>
|
|
|
|
<n-modal v-model:show="shomkA">
|
|
<div class="bg-#FFF p30px">
|
|
<el-form :model="editA" label-width="120px" :inline="true">
|
|
<!-- <el-input type="number" style="position: absolute; left: 0; top: 0; clip: rect(0, 0, 0, 0)" >
|
|
<template #append>%</template>
|
|
</el-input> -->
|
|
<el-form-item :label="editA.type === 'add' ? '月份' : '年份'" >
|
|
<el-config-provider :locale="locale">
|
|
<el-date-picker
|
|
v-model="editA.stDate"
|
|
:value-format="editA.type === 'add' ? 'YYYY-MM' : 'YYYY'"
|
|
:type="editA.type === 'add' ? 'month' : 'year'"
|
|
:placeholder="editA.type === 'add' ? '选择月份' : '选择年份'"
|
|
/>
|
|
</el-config-provider>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="C/D-交涉">
|
|
<el-input type="number" v-model="editA.negValue" >
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="C/D-THEME">
|
|
<el-input type="number" v-model="editA.themeValue">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="市况">
|
|
<el-input v-model="editA.marketValue" type="number">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="为替">
|
|
<el-input v-model="editA.weitiValue" type="number">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
</el-form>
|
|
<hr class="mb15px border-#f1f1f1">
|
|
|
|
<el-button class="flex-center" type="primary" @click="onSubmitA(editA)">确认</el-button>
|
|
</div>
|
|
</n-modal>
|
|
<n-modal v-model:show="shomkB">
|
|
<div class="bg-#FFF p30px">
|
|
<el-form :model="editB" label-width="120px" :inline="true">
|
|
<!-- <el-input type="number" style="position: absolute; left: 0; top: 0; clip: rect(0, 0, 0, 0)" >
|
|
<template #append>%</template>
|
|
</el-input> -->
|
|
<el-form-item :label="editB.type === 'add' ? '月份' : '年份'" >
|
|
<el-config-provider :locale="locale">
|
|
<el-date-picker
|
|
v-model="editB.stDate"
|
|
:value-format="editB.type === 'add' ? 'YYYY-MM' : 'YYYY'"
|
|
:type="editB.type === 'add' ? 'month' : 'year'"
|
|
:placeholder="editB.type === 'add' ? '选择月份' : '选择年份'"
|
|
/>
|
|
</el-config-provider>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="C/D-交涉">
|
|
<el-input type="number" v-model="editB.negValue" >
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="C/D-THEME">
|
|
<el-input type="number" v-model="editB.themeValue">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="市况">
|
|
<el-input v-model="editB.marketValue" type="number">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="为替">
|
|
<el-input v-model="editB.weitiValue" type="number">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
</el-form>
|
|
<hr class="mb15px border-#f1f1f1">
|
|
|
|
<el-button class="flex-center" type="primary" @click="onSubmitB(editB)">确认</el-button>
|
|
</div>
|
|
</n-modal>
|
|
<n-modal v-model:show="shomkC">
|
|
<div class="bg-#FFF p30px">
|
|
<el-form :model="editC" label-width="120px" :inline="true">
|
|
<!-- <el-input type="number" style="position: absolute; left: 0; top: 0; clip: rect(0, 0, 0, 0)" >
|
|
<template #append>%</template>
|
|
</el-input> -->
|
|
<el-form-item :label="editC.type === 'add' ? '月份' : '年份'" >
|
|
<el-config-provider :locale="locale">
|
|
<el-date-picker
|
|
v-model="editC.stDate"
|
|
:value-format="editC.type === 'add' ? 'YYYY-MM' : 'YYYY'"
|
|
:type="editC.type === 'add' ? 'month' : 'year'"
|
|
:placeholder="editC.type === 'add' ? '选择月份' : '选择年份'"
|
|
/>
|
|
</el-config-provider>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="C/D-交涉">
|
|
<el-input type="number" v-model="editC.negValue" >
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="C/D-THEME">
|
|
<el-input type="number" v-model="editC.themeValue">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="市况">
|
|
<el-input v-model="editC.marketValue" type="number">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
<el-form-item label="为替">
|
|
<el-input v-model="editC.weitiValue" type="number">
|
|
<template #append>%</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<br>
|
|
</el-form>
|
|
<hr class="mb15px border-#f1f1f1">
|
|
|
|
<el-button class="flex-center" type="primary" @click="onSubmitC(editC)">确认</el-button>
|
|
</div>
|
|
</n-modal>
|
|
|
|
<n-modal v-model:show="showModal">
|
|
<UserList :userDataList="setUserList" @clickChild="handleChild" @CloseThis="CloseThiss"/>
|
|
</n-modal>
|
|
<n-modal v-model:show="shomkD">
|
|
<div class="bg-#FFF p30px">
|
|
<el-form label-width="120px" :inline="true">
|
|
<el-form-item label="发注金额">
|
|
<el-input v-model="fazhus" type="number"> </el-input>
|
|
</el-form-item>
|
|
<br>
|
|
</el-form>
|
|
<hr class="mb15px border-#f1f1f1">
|
|
|
|
<el-button class="flex-center" type="primary" @click="submitFazhu">确认</el-button>
|
|
</div>
|
|
</n-modal>
|
|
</template>
|
|
|
|
<style lang="less">
|
|
.demo-tabs > .el-tabs__content {
|
|
color: #6b778c;
|
|
font-size: 32px;
|
|
font-weight: 600;
|
|
}
|
|
.top {
|
|
position: absolute;
|
|
right: 30px;
|
|
top: -92px;
|
|
}
|
|
.flex-center {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin: 0 auto;
|
|
}
|
|
</style> |