feat:领料管理添加子数据展示

This commit is contained in:
jackal 2024-04-17 13:51:05 +08:00
parent 910e64ea51
commit edbc58d08d
3 changed files with 1011 additions and 975 deletions

View File

@ -1,12 +1,19 @@
<template> <template>
<div class="app-container" id="receiveExamine"> <div class="app-container" id="receiveExamine">
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<h3>{{ queryParams.applyFor }}提交的领料申请</h3> <h3>{{ queryParams.applyFor }}提交的领料申请</h3>
<div>领料单号{{ queryParams.code }}</div> <div>领料单号{{ queryParams.code }}</div>
</el-row> </el-row>
<el-row :gutter="24" class="mb8"> <el-row :gutter="24" class="mb8">
<el-col :span="24"> <el-col :span="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px"> <el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="领料类型" prop="leaseTypeName"> <el-form-item label="领料类型" prop="leaseTypeName">
<el-input <el-input
v-model="queryParams.leaseTypeName" v-model="queryParams.leaseTypeName"
@ -48,65 +55,134 @@
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="success" plain icon="el-icon-back" size="mini" @click="handleBack">领料管理</el-button>
type="success" </el-col>
plain
icon="el-icon-back"
size="mini"
@click="handleBack"
>领料管理</el-button>
</el-col>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24" class="mb8"> <el-row :gutter="24" class="mb8">
<el-col :span="18"> <el-col :span="18">
<el-table v-loading="loading" :data="queryParams.leaseApplyDetails" @selection-change="handleSelectionChange"> <el-table
<!-- <el-table-column type="selection" width="55" align="center" />--> v-loading="loading"
:data="queryParams.leaseApplyDetails"
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="序号" align="center" type="index" /> <el-table-column label="序号" align="center" type="index" />
<el-table-column label="类型名称" align="center" prop="typeName" :show-overflow-tooltip="true" /> <el-table-column
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" /> label="类型名称"
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" /> align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column type="expand">
<template slot-scope="scope">
<div class="nested-table-container">
<el-table :data="scope.row.maTypeDetails" style="width: 100%">
<!-- 子表格的列 -->
<el-table-column label="序号" align="center" type="index" />
<el-table-column
label="类型名称"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="typeModelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="预领数量"
align="center"
prop="partNum"
:show-overflow-tooltip="true"
/>
</el-table>
</div>
</template>
</el-table-column>
<el-table-column
label="规格型号"
align="center"
prop="typeModelName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="计量单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column label="当前库存" align="center" prop="num" :show-overflow-tooltip="true" /> <el-table-column label="当前库存" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="预领数量" align="center" prop="preNum" :show-overflow-tooltip="true" /> <el-table-column label="预领数量" align="center" prop="preNum" :show-overflow-tooltip="true" />
<el-table-column label="申请人" align="center" prop="applyFor" :show-overflow-tooltip="true" /> <el-table-column
<el-table-column label="申请时间" align="center" prop="updateTimes" :show-overflow-tooltip="true" /> label="申请人"
<el-table-column label="任务状态" align="center" prop="taskName" :show-overflow-tooltip="true" /> align="center"
prop="applyFor"
:show-overflow-tooltip="true"
/>
<el-table-column
label="申请时间"
align="center"
prop="updateTimes"
:show-overflow-tooltip="true"
/>
<el-table-column
label="任务状态"
align="center"
prop="taskName"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="审批结果 " align="center" prop="dictName" :show-overflow-tooltip="true" />--> <!-- <el-table-column label="审批结果 " align="center" prop="dictName" :show-overflow-tooltip="true" />-->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">--> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">--> <!-- <template slot-scope="scope">-->
<!-- <el-button--> <!-- <el-button-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- type="text"--> <!-- type="text"-->
<!-- icon="el-icon-edit"--> <!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"--> <!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['store:labelType:edit']"--> <!-- v-hasPermi="['store:labelType:edit']"-->
<!-- >编辑</el-button>--> <!-- >编辑</el-button>-->
<!-- <el-button--> <!-- <el-button-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- type="text"--> <!-- type="text"-->
<!-- icon="el-icon-delete"--> <!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"--> <!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['store:labelType:remove']"--> <!-- v-hasPermi="['store:labelType:remove']"-->
<!-- >删除</el-button>--> <!-- >删除</el-button>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
</el-table> </el-table>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-timeline> <el-timeline>
<el-timeline-item color="#0bbd87" icon="el-icon-check" placement="top"> <el-timeline-item color="#0bbd87" icon="el-icon-check" placement="top">
<el-card> <el-card>
<p class="title">提交审批</p> <p class="title">提交审批</p>
<p class="author">申请人{{queryParams.applyFor}}</p> <p class="author">申请人{{queryParams.applyFor}}</p>
<p class="time">申请时间{{queryParams.updateTimes}}</p> <p class="time">申请时间{{queryParams.updateTimes}}</p>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item v-for="(v,i) in flowPath" :type="v.type" :color="v.color" :icon="v.icon" :key="i" placement="top"> <el-timeline-item
v-for="(v,i) in flowPath"
:type="v.type"
:color="v.color"
:icon="v.icon"
:key="i"
placement="top"
>
<el-card> <el-card>
<p class="title">{{v.name}}</p> <p class="title">{{v.name}}</p>
<p class="author" v-if="queryParams[v.authorKey]">审核人{{queryParams[v.authorKey]}}</p> <p class="author" v-if="queryParams[v.authorKey]">审核人{{queryParams[v.authorKey]}}</p>
@ -114,52 +190,105 @@
<p class="remark" v-if="queryParams[v.remarkKey]">审核意见{{ queryParams[v.remarkKey] }}</p> <p class="remark" v-if="queryParams[v.remarkKey]">审核意见{{ queryParams[v.remarkKey] }}</p>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
</el-col> </el-col>
</el-row> </el-row>
<div
<div slot="footer" class="dialog-footer" style="text-align: right;margin-right: 200px;" v-if="queryParams.taskStatus<33&&!this.isView"> slot="footer"
class="dialog-footer"
style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus<33&&!this.isView"
>
<el-button type="primary" @click="agree">同意</el-button> <el-button type="primary" @click="agree">同意</el-button>
<el-button @click="refuse">驳回</el-button> <el-button @click="refuse">驳回</el-button>
</div> </div>
<div slot="footer" class="dialog-footer" style="text-align: right;margin-right: 200px;" v-if="queryParams.taskStatus==117&&!this.isView"> <div
slot="footer"
class="dialog-footer"
style="text-align: right;margin-right: 200px;"
v-if="queryParams.taskStatus==117&&!this.isView"
>
<el-button type="primary" @click="confirm">确认</el-button> <el-button type="primary" @click="confirm">确认</el-button>
</div> </div>
<!-- 同意 --> <!-- 同意 -->
<el-dialog title="审核意见" :visible.sync="examineVisible" width="600px" :close-on-click-modal="false"> <el-dialog
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input> title="审核意见"
:visible.sync="examineVisible"
width="600px"
:close-on-click-modal="false"
>
<el-input
placeholder="请输入审核意见"
type="textarea"
maxlength="200"
:autosize="{ minRows: 4, maxRows: 6}"
v-model="queryParams.companyAuditRemarks"
></el-input>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="examineVisible=false"> </el-button> <el-button @click="examineVisible=false"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(9)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:fgs']"> </el-button> <el-button
<el-button type="primary" @click="subAuditLeaseByCompany(1)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbs']"> </el-button> type="primary"
@click="subAuditLeaseByCompany(9)"
v-if="queryParams.taskStatus==31"
v-hasPermi="['receive:examine:fgs']"
> </el-button>
<el-button
type="primary"
@click="subAuditLeaseByCompany(1)"
v-if="queryParams.taskStatus==32"
v-hasPermi="['receive:examine:nbs']"
> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 驳回 --> <!-- 驳回 -->
<el-dialog title="审核意见" :visible.sync="refuseVisible" width="600px" :close-on-click-modal="false"> <el-dialog
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input> title="审核意见"
:visible.sync="refuseVisible"
width="600px"
:close-on-click-modal="false"
>
<el-input
placeholder="请输入审核意见"
type="textarea"
maxlength="200"
:autosize="{ minRows: 4, maxRows: 6}"
v-model="queryParams.companyAuditRemarks"
></el-input>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="refuseVisible=false"> </el-button> <el-button @click="refuseVisible=false"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(10)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:fgs']"> </el-button> <el-button
<el-button type="primary" @click="refuseAuditLeaseByCompany(2)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbs']"> </el-button> type="primary"
@click="refuseAuditLeaseByCompany(10)"
v-if="queryParams.taskStatus==31"
v-hasPermi="['receive:examine:fgs']"
> </el-button>
<el-button
type="primary"
@click="refuseAuditLeaseByCompany(2)"
v-if="queryParams.taskStatus==32"
v-hasPermi="['receive:examine:nbs']"
> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type"; import { listType, getType, delType, addType, updateType, refreshCache } from '@/api/system/dict/type'
import { auditLeaseByCompanyCq, getLeaseListAllCq,rejectLeaseByCompanyCq,updateLeaseTaskStatusConfirmByCq } from '@/api/claimAndRefund/receive' import {
import {mapState} from 'vuex' auditLeaseByCompanyCq,
getLeaseListAllCq,
rejectLeaseByCompanyCq,
updateLeaseTaskStatusConfirmByCq,
} from '@/api/claimAndRefund/receive'
import { mapState } from 'vuex'
export default { export default {
name: "ReceiveExamine", name: 'ReceiveExamine',
data() { data() {
return { return {
flowPath:[ flowPath: [
// { // {
// id:30, // id:30,
// name:'', // name:'',
@ -168,28 +297,30 @@ export default {
// timeKey:'companyAuditTime' // timeKey:'companyAuditTime'
// }, // },
{ {
id:31, id: 31,
name:'机具分公司审核', name: '机具分公司审核',
remarkKey:'deptAuditRemark', remarkKey: 'deptAuditRemark',
authorKey:'deptAuditBy', authorKey: 'deptAuditBy',
timeKey:'deptAuditTime' timeKey: 'deptAuditTime',
},{ },
id:32, {
name:'施工部审核', id: 32,
remarkKey:'directAuditRemark', name: '施工部审核',
authorKey:'directAuditBy', remarkKey: 'directAuditRemark',
timeKey:'directAuditTime' authorKey: 'directAuditBy',
},{ timeKey: 'directAuditTime',
id:117, },
name:'机具分公司确认', {
remarkKey:'directAuditRemark', id: 117,
authorKey:'directAuditBy', name: '机具分公司确认',
timeKey:'directAuditTime' remarkKey: 'directAuditRemark',
} authorKey: 'directAuditBy',
timeKey: 'directAuditTime',
},
], ],
isView:false, isView: false,
examineVisible:false, examineVisible: false,
refuseVisible:false, refuseVisible: false,
// //
loading: false, loading: false,
// //
@ -205,215 +336,214 @@ export default {
// //
typeList: [], typeList: [],
// //
title: "", title: '',
// //
open: false, open: false,
// //
dateRange: [], dateRange: [],
// //
queryParams: { queryParams: {
leaseApplyInfo:{ leaseApplyInfo: {},
leaseApplyDetails: [],
}, companyAuditRemarks: '',
leaseApplyDetails:[],
companyAuditRemarks:''
}, },
// //
form: {}, form: {},
// //
rules: { rules: {
dictName: [ dictName: [{ required: true, message: '字典名称不能为空', trigger: 'blur' }],
{ required: true, message: "字典名称不能为空", trigger: "blur" } dictType: [{ required: true, message: '字典类型不能为空', trigger: 'blur' }],
],
dictType: [
{ required: true, message: "字典类型不能为空", trigger: "blur" }
]
}, },
peopleOpen:false, peopleOpen: false,
noticeOpen:false, noticeOpen: false,
nform:{ nform: {
notice:'' notice: '',
}, },
nrules: { nrules: {
notice: [ notice: [{ required: true, message: '通知内容不能为空', trigger: 'blur' }],
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
}, },
deptName: undefined, deptName: undefined,
activities: [{ activities: [
content: '小洁发起申请', {
timestamp: '2018-04-15' content: '小洁发起申请',
}, { timestamp: '2018-04-15',
content: '分公司审批', },
timestamp: '2018-04-13' {
}, { content: '分公司审批',
content: '部门审批', timestamp: '2018-04-13',
timestamp: '2018-04-11' },
}], {
content: '部门审批',
timestamp: '2018-04-11',
}; },
],
}
}, },
computed:{ computed: {
...mapState(['user']) ...mapState(['user']),
}, },
created() { created() {
let taskId = this.$route.query.taskId let taskId = this.$route.query.taskId
let isView = this.$route.query.isView let isView = this.$route.query.isView
this.isView = false this.isView = false
if(isView){ if (isView) {
this.isView = true this.isView = true
} }
// console.log(isView) // console.log(isView)
if(taskId){ if (taskId) {
this.getData(taskId) this.getData(taskId)
} }
}, },
methods: { methods: {
agree(){ agree() {
this.examineVisible = true this.examineVisible = true
this.queryParams.companyAuditRemarks = '同意' this.queryParams.companyAuditRemarks = '同意'
}, },
// //
async subAuditLeaseByCompany(type){ async subAuditLeaseByCompany(type) {
// console.log() // console.log()
const params = JSON.parse(JSON.stringify(this.queryParams)) const params = JSON.parse(JSON.stringify(this.queryParams))
if(params.taskStatus==31){ if (params.taskStatus == 31) {
params.taskStatus = 32 params.taskStatus = 32
}else if(params.taskStatus==32){ } else if (params.taskStatus == 32) {
params.taskStatus=117 params.taskStatus = 117
} }
params.leaseApplyInfoList.forEach(v => { params.leaseApplyInfoList.forEach(v => {
// console.log(v) // console.log(v)
this.$set(v,'companyAuditRemark',params.companyAuditRemarks) this.$set(v, 'companyAuditRemark', params.companyAuditRemarks)
this.$set(v,'companyAuditBy',this.user.id) this.$set(v, 'companyAuditBy', this.user.id)
this.$set(v,'examineStatusId',Number(params.examineStatusId)) this.$set(v, 'examineStatusId', Number(params.examineStatusId))
this.$set(v,'status',type) this.$set(v, 'status', type)
}) })
params.updateTime = params.updateTimes params.updateTime = params.updateTimes
params.createTime = params.createTimes params.createTime = params.createTimes
// console.log(params) // console.log(params)
const res = await auditLeaseByCompanyCq(params) const res = await auditLeaseByCompanyCq(params)
if(res.code == 200){ if (res.code == 200) {
this.examineVisible = false this.examineVisible = false
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"}); this.$tab.closeOpenPage({
path: '/claimAndRefund/receiveByCq/receiveManage',
})
} }
// console.log('subAuditLeaseByCompany ==================',res) // console.log('subAuditLeaseByCompany ==================',res)
}, },
// //
confirm(){ confirm() {
const taskData = JSON.parse(JSON.stringify(this.queryParams)) const taskData = JSON.parse(JSON.stringify(this.queryParams))
// console.log(taskData) // console.log(taskData)
let param = { let param = {
taskId:taskData.taskId, taskId: taskData.taskId,
taskStatus:33 taskStatus: 33,
} }
updateLeaseTaskStatusConfirmByCq(param).then(response => { updateLeaseTaskStatusConfirmByCq(param).then(response => {
this.$modal.msgSuccess("操作成功"); this.$modal.msgSuccess('操作成功')
this.getData(taskData.taskId) this.getData(taskData.taskId)
}); })
},
},
// //
refuse(){ refuse() {
this.refuseVisible = true this.refuseVisible = true
this.queryParams.companyAuditRemarks = '驳回' this.queryParams.companyAuditRemarks = '驳回'
}, },
// //
async refuseAuditLeaseByCompany(type){ async refuseAuditLeaseByCompany(type) {
const params = JSON.parse(JSON.stringify(this.queryParams)) const params = JSON.parse(JSON.stringify(this.queryParams))
if(params.taskStatus==31){ if (params.taskStatus == 31) {
params.taskStatus=99; params.taskStatus = 99
params.examineStatusId=99 params.examineStatusId = 99
} }
if(params.taskStatus==32){ if (params.taskStatus == 32) {
params.taskStatus=100; params.taskStatus = 100
params.examineStatusId=100 params.examineStatusId = 100
} }
params.updateTime = params.updateTimes params.updateTime = params.updateTimes
params.createTime = params.createTimes params.createTime = params.createTimes
params.leaseApplyInfoList.forEach(v => { params.leaseApplyInfoList.forEach(v => {
this.$set(v,'companyAuditRemark',params.companyAuditRemarks) this.$set(v, 'companyAuditRemark', params.companyAuditRemarks)
this.$set(v,'companyAuditBy',this.user.id) this.$set(v, 'companyAuditBy', this.user.id)
this.$set(v,'examineStatusId',Number(params.examineStatusId)) this.$set(v, 'examineStatusId', Number(params.examineStatusId))
this.$set(v,'status',type) this.$set(v, 'status', type)
}) })
// console.log(params) // console.log(params)
const res = await rejectLeaseByCompanyCq(params) const res = await rejectLeaseByCompanyCq(params)
if(res.code == 200){ if (res.code == 200) {
this.examineVisible = false this.examineVisible = false
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"}); this.$tab.closeOpenPage({
path: '/claimAndRefund/receiveByCq/receiveManage',
})
} }
// console.log('subAuditLeaseByCompany ==================',res) // console.log('subAuditLeaseByCompany ==================',res)
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleBack(row) { handleBack(row) {
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"}); this.$tab.closeOpenPage({
}, path: '/claimAndRefund/receiveByCq/receiveManage',
})
},
/** 查询 */ /** 查询 */
async getData(taskId) { async getData(taskId) {
const res = await getLeaseListAllCq({taskId}) const res = await getLeaseListAllCq({ taskId })
this.queryParams = {...this.queryParams,...res.rows[0]} this.queryParams = { ...this.queryParams, ...res.rows[0] }
this.$set(this.queryParams,'leaseApplyInfo',this.queryParams.leaseApplyInfoList[0]) this.$set(this.queryParams, 'leaseApplyInfo', this.queryParams.leaseApplyInfoList[0])
this.queryParams.leaseApplyDetails.forEach(v => { this.queryParams.leaseApplyDetails.forEach(v => {
this.$set(v,'applyFor',this.queryParams.applyFor) this.$set(v, 'applyFor', this.queryParams.applyFor)
this.$set(v,'updateTimes',this.queryParams.updateTimes) this.$set(v, 'updateTimes', this.queryParams.updateTimes)
this.$set(v,'taskName',this.queryParams.taskName) this.$set(v, 'taskName', this.queryParams.taskName)
this.$set(v,'createTime',this.queryParams.createTimes) this.$set(v, 'createTime', this.queryParams.createTimes)
this.$set(v,'updateTime',this.queryParams.updateTimes) this.$set(v, 'updateTime', this.queryParams.updateTimes)
}) })
if(this.queryParams.leaseType=='0'){ if (this.queryParams.leaseType == '0') {
this.$set(this.queryParams,'leaseTypeName','工程租赁') this.$set(this.queryParams, 'leaseTypeName', '工程租赁')
}else if(this.queryParams.leaseType=='1'){ } else if (this.queryParams.leaseType == '1') {
this.$set(this.queryParams,'leaseTypeName','长期租赁') this.$set(this.queryParams, 'leaseTypeName', '长期租赁')
}else{ } else {
this.$set(this.queryParams,'leaseTypeName','') this.$set(this.queryParams, 'leaseTypeName', '')
} }
// console.log(this.queryParams.examineStatusId) // console.log(this.queryParams.examineStatusId)
for (let i=0; i < this.flowPath.length; i++ ){ for (let i = 0; i < this.flowPath.length; i++) {
if(this.flowPath[i].id < this.queryParams.examineStatusId){ if (this.flowPath[i].id < this.queryParams.examineStatusId) {
this.flowPath[i].color = '#0bbd87' this.flowPath[i].color = '#0bbd87'
this.flowPath[i].icon = 'el-icon-check' this.flowPath[i].icon = 'el-icon-check'
}else{ } else {
this.flowPath[i].remarkKey = '' this.flowPath[i].remarkKey = ''
} }
if(this.flowPath[i].id == this.queryParams.examineStatusId){ if (this.flowPath[i].id == this.queryParams.examineStatusId) {
this.flowPath[i].type = 'primary' this.flowPath[i].type = 'primary'
this.flowPath[i].color = "#1890ff" this.flowPath[i].color = '#1890ff'
this.flowPath[i].icon = 'el-icon-more' this.flowPath[i].icon = 'el-icon-more'
break break
} }
} }
if(this.queryParams.examineStatusId==33){ if (this.queryParams.examineStatusId == 33) {
this.flowPath[2].color = '#0bbd87' this.flowPath[2].color = '#0bbd87'
this.flowPath[2].icon = 'el-icon-check' this.flowPath[2].icon = 'el-icon-check'
} }
// console.log(this.flowPath) // console.log(this.flowPath)
if(this.queryParams.examineStatusId==98){ if (this.queryParams.examineStatusId == 98) {
this.flowPath[0].color = 'red' this.flowPath[0].color = 'red'
this.flowPath[0].icon = 'el-icon-close' this.flowPath[0].icon = 'el-icon-close'
this.flowPath[1].color = '' this.flowPath[1].color = ''
this.flowPath[1].icon = '' this.flowPath[1].icon = ''
this.flowPath[2].color = '' this.flowPath[2].color = ''
this.flowPath[2].icon = '' this.flowPath[2].icon = ''
} }
if(this.queryParams.examineStatusId==99){ if (this.queryParams.examineStatusId == 99) {
this.flowPath[1].color = 'red' this.flowPath[1].color = 'red'
this.flowPath[1].icon = 'el-icon-close' this.flowPath[1].icon = 'el-icon-close'
this.flowPath[2].color = '' this.flowPath[2].color = ''
this.flowPath[2].icon = '' this.flowPath[2].icon = ''
} }
if(this.queryParams.examineStatusId==100){ if (this.queryParams.examineStatusId == 100) {
this.flowPath[2].color = 'red' this.flowPath[2].color = 'red'
this.flowPath[2].icon = 'el-icon-close' this.flowPath[2].icon = 'el-icon-close'
} }
}, },
// //
cancel() { cancel() {
this.open = false; this.open = false
this.reset(); this.reset()
}, },
// //
reset() { reset() {
@ -421,115 +551,123 @@ export default {
dictId: undefined, dictId: undefined,
dictName: undefined, dictName: undefined,
dictType: undefined, dictType: undefined,
status: "0", status: '0',
remark: undefined remark: undefined,
}; }
this.resetForm("form"); this.resetForm('form')
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1
this.getList(); this.getList()
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.dateRange = []; this.dateRange = []
this.resetForm("queryForm"); this.resetForm('queryForm')
this.handleQuery(); this.handleQuery()
}, },
handleNotice(){ handleNotice() {
this.noticeOpen = true; this.noticeOpen = true
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset()
this.open = true; this.open = true
this.title = "添加字典类型"; this.title = '添加字典类型'
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictId) this.ids = selection.map(item => item.dictId)
this.single = selection.length!=1 this.single = selection.length != 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset()
const dictId = row.dictId || this.ids const dictId = row.dictId || this.ids
getType(dictId).then(response => { getType(dictId).then(response => {
this.form = response.data; this.form = response.data
this.open = true; this.open = true
this.title = "验收"; this.title = '验收'
}); })
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {
this.$refs["form"].validate(valid => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
if (this.form.dictId != undefined) { if (this.form.dictId != undefined) {
updateType(this.form).then(response => { updateType(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess('修改成功')
this.open = false; this.open = false
this.getList(); this.getList()
}); })
} else { } else {
addType(this.form).then(response => { addType(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess('新增成功')
this.open = false; this.open = false
this.getList(); this.getList()
}); })
} }
} }
}); })
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const dictIds = row.dictId || this.ids; const dictIds = row.dictId || this.ids
this.$modal.confirm('是否确认删除该数据项?').then(function() { this.$modal
return delType(dictIds); .confirm('是否确认删除该数据项?')
}).then(() => { .then(function() {
this.getList(); return delType(dictIds)
this.$modal.msgSuccess("删除成功"); })
}).catch(() => {}); .then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
})
.catch(() => {})
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/dict/type/export', { this.download(
...this.queryParams 'system/dict/type/export',
}, `type_${new Date().getTime()}.xlsx`) {
...this.queryParams,
},
`type_${new Date().getTime()}.xlsx`
)
}, },
/** 刷新缓存按钮操作 */ /** 刷新缓存按钮操作 */
handleRefreshCache() { handleRefreshCache() {
refreshCache().then(() => { refreshCache().then(() => {
this.$modal.msgSuccess("刷新成功"); this.$modal.msgSuccess('刷新成功')
this.$store.dispatch('dict/cleanDict'); this.$store.dispatch('dict/cleanDict')
}); })
} },
} },
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-card__body{ ::v-deep .el-card__body {
padding: 10px !important; padding: 10px !important;
p{ p {
margin: 0 !important; margin: 0 !important;
}
.title{
color: #848484;
font-weight: 700;
}
.author{
font-size: 13px;
margin-top: 5px;
}
.time{
font-size: 12px;
}
.remark{
margin-top: 10px;
word-break: break-all;
font-size: 13px;
}
} }
.title {
color: #848484;
font-weight: 700;
}
.author {
font-size: 13px;
margin-top: 5px;
}
.time {
font-size: 12px;
}
.remark {
margin-top: 10px;
word-break: break-all;
font-size: 13px;
}
}
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,15 @@
"use strict"; 'use strict'
const path = require("path"); const path = require('path')
function resolve(dir) { function resolve(dir) {
return path.join(__dirname, dir); return path.join(__dirname, dir)
} }
const CompressionPlugin = require("compression-webpack-plugin"); const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || "施工装备管理系统"; // 网页标题 const name = process.env.VUE_APP_TITLE || '施工装备管理系统' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80; // 端口 const port = process.env.port || process.env.npm_config_port || 80 // 端口
// vue.config.js 配置说明 // vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
@ -18,18 +18,18 @@ module.exports = {
// 部署生产环境和开发环境下的URL。 // 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上 // 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "/" : "/", ///gl/ publicPath: process.env.NODE_ENV === 'production' ? '/' : '/', ///gl/
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist // 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: "dist", outputDir: 'dist',
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
assetsDir: "static", assetsDir: 'static',
// 是否开启eslint保存检测有效值ture | false | 'error' // 是否开启eslint保存检测有效值ture | false | 'error'
lintOnSave: process.env.NODE_ENV === "development", lintOnSave: process.env.NODE_ENV === 'development',
// 如果你不需要生产环境的 source map可以将其设置为 false 以加速生产环境构建。 // 如果你不需要生产环境的 source map可以将其设置为 false 以加速生产环境构建。
productionSourceMap: false, productionSourceMap: false,
// webpack-dev-server 相关配置 // webpack-dev-server 相关配置
devServer: { devServer: {
host: "0.0.0.0", host: '0.0.0.0',
port: port, port: port,
open: true, open: true,
proxy: { proxy: {
@ -42,10 +42,10 @@ module.exports = {
// target: `https://test-cc.zhgkxt.com`,//线上环境-南网 // target: `https://test-cc.zhgkxt.com`,//线上环境-南网
// target: `https://z.csgmall.com.cn`, // target: `https://z.csgmall.com.cn`,
// target: `http://10.40.92.8:8080`, //超 target: `http://10.40.92.8:8080`, //超
// target: `http://10.40.92.253:8080`,//韩 // target: `http://10.40.92.253:8080`,//韩
// target: `http://10.40.92.209:8080`,//川/ // target: `http://10.40.92.209:8080`,//川/
target: `http://10.40.92.153:8080`, //帅 // target: `http://10.40.92.153:8080`, //帅
// target: `http://10.40.92.14:8080`, //福 // target: `http://10.40.92.14:8080`, //福
//******** 注意事项 ********* */ //******** 注意事项 ********* */
@ -61,7 +61,7 @@ module.exports = {
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "", ['^' + process.env.VUE_APP_BASE_API]: '',
}, },
}, },
}, },
@ -70,7 +70,7 @@ module.exports = {
css: { css: {
loaderOptions: { loaderOptions: {
sass: { sass: {
sassOptions: { outputStyle: "expanded" }, sassOptions: { outputStyle: 'expanded' },
}, },
}, },
}, },
@ -78,7 +78,7 @@ module.exports = {
name: name, name: name,
resolve: { resolve: {
alias: { alias: {
"@": resolve("src"), '@': resolve('src'),
}, },
}, },
plugins: [ plugins: [
@ -86,71 +86,71 @@ module.exports = {
new CompressionPlugin({ new CompressionPlugin({
cache: false, // 不启用文件缓存 cache: false, // 不启用文件缓存
test: /\.(js|css|html)?$/i, // 压缩文件格式 test: /\.(js|css|html)?$/i, // 压缩文件格式
filename: "[path].gz[query]", // 压缩后的文件名 filename: '[path].gz[query]', // 压缩后的文件名
algorithm: "gzip", // 使用gzip压缩 algorithm: 'gzip', // 使用gzip压缩
minRatio: 0.8, // 压缩率小于1才会压缩 minRatio: 0.8, // 压缩率小于1才会压缩
}), }),
], ],
}, },
chainWebpack(config) { chainWebpack(config) {
config.plugins.delete("preload"); // TODO: need test config.plugins.delete('preload') // TODO: need test
config.plugins.delete("prefetch"); // TODO: need test config.plugins.delete('prefetch') // TODO: need test
// set svg-sprite-loader // set svg-sprite-loader
config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end(); config.module.rule('svg').exclude.add(resolve('src/assets/icons')).end()
config.module config.module
.rule("icons") .rule('icons')
.test(/\.svg$/) .test(/\.svg$/)
.include.add(resolve("src/assets/icons")) .include.add(resolve('src/assets/icons'))
.end() .end()
.use("svg-sprite-loader") .use('svg-sprite-loader')
.loader("svg-sprite-loader") .loader('svg-sprite-loader')
.options({ .options({
symbolId: "icon-[name]", symbolId: 'icon-[name]',
}) })
.end(); .end()
config.when(process.env.NODE_ENV !== "development", (config) => { config.when(process.env.NODE_ENV !== 'development', config => {
config config
.plugin("ScriptExtHtmlWebpackPlugin") .plugin('ScriptExtHtmlWebpackPlugin')
.after("html") .after('html')
.use("script-ext-html-webpack-plugin", [ .use('script-ext-html-webpack-plugin', [
{ {
// `runtime` must same as runtimeChunk name. default is `runtime` // `runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/, inline: /runtime\..*\.js$/,
}, },
]) ])
.end(); .end()
config.optimization.splitChunks({ config.optimization.splitChunks({
chunks: "all", chunks: 'all',
cacheGroups: { cacheGroups: {
libs: { libs: {
name: "chunk-libs", name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/, test: /[\\/]node_modules[\\/]/,
priority: 10, priority: 10,
chunks: "initial", // only package third parties that are initially dependent chunks: 'initial', // only package third parties that are initially dependent
}, },
elementUI: { elementUI: {
name: "chunk-elementUI", // split elementUI into a single package name: 'chunk-elementUI', // split elementUI into a single package
test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
}, },
commons: { commons: {
name: "chunk-commons", name: 'chunk-commons',
test: resolve("src/components"), // can customize your rules test: resolve('src/components'), // can customize your rules
minChunks: 3, // minimum common number minChunks: 3, // minimum common number
priority: 5, priority: 5,
reuseExistingChunk: true, reuseExistingChunk: true,
}, },
}, },
}); })
config.optimization.runtimeChunk("single"), config.optimization.runtimeChunk('single'),
{ {
from: path.resolve(__dirname, "./public/robots.txt"), //防爬虫文件 from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
to: "./", //到根目录下 to: './', //到根目录下
}; }
}); })
}, },
}; }