daikins/.svn/pristine/0c/0c7be5c82adbe143d57403befe9...

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>