pull/4/head
siontion 8 months ago
commit 8beed27c5c

@ -1,170 +1,171 @@
<template> <template>
<ContentWrap> <el-card class="hl-card">
<!-- 搜索工作栏 --> <template #header>
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="105px"> <span>生产计划</span>
<el-form-item label="项目编号" prop="projectCode"> </template>
<el-input v-model="queryParams.projectCode" placeholder="项目编号" clearable @keyup.enter="handleQuery" <ContentWrap class="borderxx">
class="!w-250px" /> <!-- 搜索工作栏 -->
</el-form-item> <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="105px">
<el-form-item label="客户名称" prop="customerName"> <el-form-item label="项目编号" prop="projectCode">
<el-input v-model="queryParams.customerName" placeholder="客户名称" clearable @keyup.enter="handleQuery" <el-input v-model="queryParams.projectCode" placeholder="项目编号" clearable @keyup.enter="handleQuery" class="!w-250px" />
class="!w-250px" /> </el-form-item>
</el-form-item> <el-form-item label="客户名称" prop="customerName">
<el-form-item label="项目名称" prop="projectName"> <el-input v-model="queryParams.customerName" placeholder="客户名称" clearable @keyup.enter="handleQuery" class="!w-250px" />
<el-input v-model="queryParams.projectName" placeholder="项目名称" clearable @keyup.enter="handleQuery" </el-form-item>
class="!w-250px" /> <el-form-item label="项目名称" prop="projectName">
</el-form-item> <el-input v-model="queryParams.projectName" placeholder="项目名称" clearable @keyup.enter="handleQuery" class="!w-250px" />
<el-form-item label="业务员" prop="businessManName"> </el-form-item>
<el-input v-model="queryParams.businessManName" placeholder="业务员" clearable @keyup.enter="handleQuery" <el-form-item label="业务员" prop="businessManName">
class="!w-250px" /> <el-input v-model="queryParams.businessManName" placeholder="业务员" clearable @keyup.enter="handleQuery" class="!w-250px" />
</el-form-item> </el-form-item>
<el-form-item label="所属业务线" prop="businessLine"> <el-form-item label="所属业务线" prop="businessLine">
<el-select class="!w-250px" v-model="queryParams.businessLine" placeholder="下拉选择"> <el-select class="!w-250px" v-model="queryParams.businessLine" placeholder="下拉选择">
<el-option v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)" :key="dict.value" :label="dict.label" <el-option v-for="dict in getStrDictOptions(DICT_TYPE.HELI_BUSINESS_LINE)" :key="dict.value" :label="dict.label" :value="dict.value" />
:value="dict.value" /> </el-select>
</el-select> </el-form-item>
</el-form-item> <el-form-item label="性质" prop="property">
<el-form-item label="性质" prop="property"> <el-select class="!w-250px" v-model="queryParams.property" placeholder="下拉选择">
<el-select class="!w-250px" v-model="queryParams.property" placeholder="下拉选择"> <el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)" :key="dict.value" :label="dict.label" :value="dict.value" />
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PROPERTY)" :key="dict.value" </el-select>
:label="dict.label" :value="dict.value" /> </el-form-item>
</el-select> <el-form-item label="生产状态" prop="status">
</el-form-item> <el-select v-model="queryParams.status" placeholder="生产状态" clearable class="!w-250px">
<el-form-item label="生产状态" prop="status"> <el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict.value" :label="dict.label" :value="dict.value" />
<el-select v-model="queryParams.status" placeholder="生产状态" clearable class="!w-250px"> </el-select>
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict.value" </el-form-item>
:label="dict.label" :value="dict.value" /> <el-form-item label="项目负责人" prop="projectOwner">
</el-select> <el-input v-model="queryParams.projectOwner" placeholder="项目负责人" clearable @keyup.enter="handleQuery" class="!w-250px" />
</el-form-item> </el-form-item>
<el-form-item label="项目负责人" prop="projectOwner"> <el-form-item>
<el-input v-model="queryParams.projectOwner" placeholder="项目负责人" clearable @keyup.enter="handleQuery" <el-button @click="handleQuery">
class="!w-250px" /> <Icon icon="ep:search" class="mr-5px" /> 搜索
</el-form-item> </el-button>
<el-form-item> <el-button @click="resetQuery">
<el-button @click="handleQuery"> <Icon icon="ep:refresh" class="mr-5px" /> 重置
<Icon icon="ep:search" class="mr-5px" /> 搜索 </el-button>
</el-button> <el-button type="primary" plain @click="openAdd()">
<el-button @click="resetQuery"> <Icon icon="ep:plus" class="mr-5px" /> 新增
<Icon icon="ep:refresh" class="mr-5px" /> 重置 </el-button>
</el-button> </el-form-item>
<el-button type="primary" plain @click="openAdd()"> </el-form>
<Icon icon="ep:plus" class="mr-5px" /> 新增 </ContentWrap>
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table">
<el-table-column fixed label="计划单号" align="center" prop="planNo" width="150" > <el-table-column fixed label="计划单号" align="center" prop="planNo" width="150">
<template #default="scope"> <template #default="scope">
<el-button text type="primary" @click="handleCommand('detail',scope.row.id)"> <el-button text type="primary" @click="handleCommand('detail',scope.row.id)">
{{scope.row.planNo}} {{scope.row.planNo}}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="220" /> <el-table-column fixed label="项目编号" align="center" prop="projectCode" width="220" />
<el-table-column fixed label="项目变更次数" align="center" prop="changeNum" width="150" /> <el-table-column fixed label="项目变更次数" align="center" prop="changeNum" width="150" />
<el-table-column label="客户名称" align="center" prop="customerName" width="150"/> <el-table-column label="客户名称" align="center" prop="customerName" width="150" />
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/> <el-table-column label="项目名称" align="center" prop="projectName" width="150" />
<el-table-column label="业务员" align="center" prop="businessManName" width="150"/> <el-table-column label="业务员" align="center" prop="businessManName" width="150" />
<el-table-column label="起止时间" align="center" prop="projectStartTime" width="260"> <el-table-column label="起止时间" align="center" prop="projectStartTime" width="260">
<template #default="scope"> <template #default="scope">
{{ {{
formatDate(scope.row.projectStartTime, 'YYYY-MM-DD') + formatDate(scope.row.projectStartTime, 'YYYY-MM-DD') +
'~' + '~' +
formatDate(scope.row.projectEndTime, 'YYYY-MM-DD') formatDate(scope.row.projectEndTime, 'YYYY-MM-DD')
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属业务线" align="center" prop="businessLine" width="150"> <el-table-column label="所属业务线" align="center" prop="businessLine" width="150">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_BUSINESS_LINE" :value="scope.row.businessLine" /> <dict-tag :type="DICT_TYPE.HELI_BUSINESS_LINE" :value="scope.row.businessLine" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="性质" align="center" prop="property" width="120"> <el-table-column label="性质" align="center" prop="property" width="120">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_PROJECT_PROPERTY" :value="scope.row.property" /> <dict-tag :type="DICT_TYPE.HELI_PROJECT_PROPERTY" :value="scope.row.property" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否紧急" align="center" prop="isUrgency" width="150"> <el-table-column label="是否紧急" align="center" prop="isUrgency" width="150">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.isUrgency" /> <dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.isUrgency" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否已变更" align="center" prop="hasAlter" width="150"> <el-table-column label="是否已变更" align="center" prop="hasAlter" width="150">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.hasAlter" /> <dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.hasAlter" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否要工艺" align="center" prop="hasCraft" width="150"> <el-table-column label="是否要工艺" align="center" prop="hasCraft" width="150">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.hasCraft" /> <dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.hasCraft" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工艺起止时间" align="center" prop="craftStartDate" width="260"> <el-table-column label="工艺起止时间" align="center" prop="craftStartDate" width="260">
<template #default="scope"> <template #default="scope">
{{ {{
formatDate(scope.row.craftStartDate, 'YYYY-MM-DD') + formatDate(scope.row.craftStartDate, 'YYYY-MM-DD') +
'~' + '~' +
formatDate(scope.row.craftEndDate, 'YYYY-MM-DD') formatDate(scope.row.craftEndDate, 'YYYY-MM-DD')
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="220px" /> <el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="220px" />
<el-table-column label="备注" align="center" prop="description" width="150"/> <el-table-column label="备注" align="center" prop="description" width="150" />
<el-table-column fixed="right" label="项目负责人" align="center" prop="projectOwner" width="150" > <el-table-column fixed="right" label="项目负责人" align="center" prop="projectOwner" width="150">
<template #default="scope"> <template #default="scope">
{{ userInit.find((user) => user.id == scope.row.projectOwner)?.nickname }} {{ userInit.find((user) => user.id == scope.row.projectOwner)?.nickname }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="工艺负责人" align="center" prop="craftOwner" width="150" > <el-table-column fixed="right" label="工艺负责人" align="center" prop="craftOwner" width="150">
<template #default="scope"> <template #default="scope">
{{ userInit.find((user) => user.id == scope.row.craftOwner)?.nickname }} {{ userInit.find((user) => user.id == scope.row.craftOwner)?.nickname }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="生产状态" align="center" prop="status" width="150"> <el-table-column fixed="right" label="生产状态" align="center" prop="status" width="150">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_PROJECT_PLAN_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.HELI_PROJECT_PLAN_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="150"> <el-table-column fixed="right" label="操作" align="center" width="150">
<template #default="scope"> <template #default="scope">
<el-button link type="primary" @click="openForm(scope.row.id)" > <el-row>
编辑 <el-col>
</el-button> <el-button link type="primary" @click="openForm(scope.row.id)">
<el-dropdown @command="(command) => handleCommand(command, scope.row.id, scope.row.code)"> 编辑
<span class="el-dropdown-link">更多 </el-button>
<el-icon class="el-icon--right"> <el-dropdown @command="(command) => handleCommand(command, scope.row.id, scope.row.code)">
<arrow-down /> <span class="el-dropdown-link">更多
</el-icon> <el-icon class="el-icon--right">
</span> <arrow-down />
<template #dropdown> </el-icon>
<el-dropdown-menu> </span>
<el-dropdown-item command="detail">查看详情</el-dropdown-item> <template #dropdown>
<el-dropdown-item command="printProjectPlan"> <el-dropdown-menu>
打印生产计划单 <el-dropdown-item command="detail">查看详情</el-dropdown-item>
</el-dropdown-item> <el-dropdown-item command="printProjectPlan">
</el-dropdown-menu> 打印生产计划单
</template> </el-dropdown-item>
</el-dropdown> </el-dropdown-menu>
</template> </template>
</el-table-column> </el-dropdown>
</el-table> </el-col>
<!-- 分页 --> </el-row>
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
@pagination="getList" />
</ContentWrap>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
</ContentWrap>
</el-card>
<!-- 打印启动单 - 弹框--> <!-- 打印启动单 - 弹框-->
<Print ref="printRef" /> <Print ref="printRef" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict' import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter,formatDate } from '@/utils/formatTime' import { dateFormatter, formatDate } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import * as PlanApi from '@/api/heli/plan' import * as PlanApi from '@/api/heli/plan'
import Print from './planprint.vue' // import Print from './planprint.vue' //
@ -184,12 +185,12 @@ const queryParams = reactive({
pageSize: 10, pageSize: 10,
projectCode: undefined, projectCode: undefined,
customerName: undefined, customerName: undefined,
projectName:undefined, projectName: undefined,
businessManName:undefined, businessManName: undefined,
businessLine:undefined, businessLine: undefined,
property:undefined, property: undefined,
projectOwner: undefined, projectOwner: undefined,
status: undefined, status: undefined
}) })
const queryFormRef = ref() // const queryFormRef = ref() //
const exportLoading = ref(false) // const exportLoading = ref(false) //
@ -208,7 +209,7 @@ const getList = async () => {
const handleCommand = async (command, id, code) => { const handleCommand = async (command, id, code) => {
switch (command) { switch (command) {
case 'detail': case 'detail':
openDetail( id) openDetail(id)
break break
case 'printProjectPlan': case 'printProjectPlan':
printHandle(id) printHandle(id)
@ -235,16 +236,16 @@ const resetQuery = () => {
} }
/** 添加/修改操作 */ /** 添加/修改操作 */
const openForm = (id:number) => { const openForm = (id: number) => {
router.push({ path: '/plan/edit',query:{id:id}}) router.push({ path: '/plan/edit', query: { id: id } })
} }
const openAdd = (id:number) => { const openAdd = (id: number) => {
router.push({ path: '/plan/add'}) router.push({ path: '/plan/add' })
} }
/** 添加/修改操作 */ /** 添加/修改操作 */
const openDetail = (id: number) => { const openDetail = (id: number) => {
router.push({ path: '/plan/detail',query:{id:id}}) router.push({ path: '/plan/detail', query: { id: id } })
} }
/** 导出按钮操作 */ /** 导出按钮操作 */
@ -264,9 +265,18 @@ const handleExport = async () => {
const userInit = ref() const userInit = ref()
/** 初始化 **/ /** 初始化 **/
onMounted( async() => { onMounted(async () => {
// //
userInit.value = await UserApi.getSimpleUserList() userInit.value = await UserApi.getSimpleUserList()
await getList() await getList()
}) })
</script> </script>
<style scoped>
.el-dropdown-link {
cursor: pointer;
margin: 5px;
color: var(--el-color-primary);
display: flex;
align-items: center;
}
</style>

@ -134,7 +134,6 @@
</el-table-column> </el-table-column>
<el-table-column prop="matSub" label="盈亏差异" min-width="120" align="center"> <el-table-column prop="matSub" label="盈亏差异" min-width="120" align="center">
<template #default="scope"> <template #default="scope">
<div v-if="scope.row.matSub<0" style="color:#EC808D;"> <div v-if="scope.row.matSub<0" style="color:#EC808D;">
{{scope.row.matSub}} {{scope.row.matSub}}
</div> </div>
@ -593,10 +592,12 @@ const handlePn = async (pnid, scope) => {
} }
const handleSub = async (pNum, scope) => { const handleSub = async (pNum, scope) => {
//------------------- //-------------------
scope.row.matSub = Number(pNum) - Number(scope.row.matRest) // scope.row.matSub = Number(pNum) - Number(scope.row.matRest)
console.log(typeof scope.row.matSub) // console.log(typeof scope.row.matSub)
//----------------- const matSubValue = Number(pNum) - Number(scope.row.matRest)
scope.row.matSub = matSubValue.toFixed(2) //
console.log(typeof scope.row.matSub)
} }
// //
@ -699,11 +700,10 @@ onMounted(async () => {
item.pnlist = pnList.value.filter((pn) => pn.rg_id == item.rgId) item.pnlist = pnList.value.filter((pn) => pn.rg_id == item.rgId)
}) })
formData.value.matItemDOList.sort((a,b)=>a.matCode-b.matCode) formData.value.matItemDOList.sort((a, b) => a.matCode - b.matCode)
formData.value.matItemDOList.forEach(item=>{ formData.value.matItemDOList.forEach((item) => {
item.cid = matCount item.cid = matCount
matCount= matCount+1 matCount = matCount + 1
}) })
// //
let attParams = { let attParams = {

Loading…
Cancel
Save