作者 张晓杰

采购申请审批

... ... @@ -181,21 +181,21 @@
align:"center",
dataIndex: 'applicant'
},
{
title:'一级审批人',
align:"center",
dataIndex: 'spOne'
},
{
title:'二级审批人',
align:"center",
dataIndex: 'spTwo'
},
{
title:'不同意备注',
align:"center",
dataIndex: 'noNotes'
},
// {
// title:'一级审批人',
// align:"center",
// dataIndex: 'spOne'
// },
// {
// title:'二级审批人',
// align:"center",
// dataIndex: 'spTwo'
// },
// {
// title:'不同意备注',
// align:"center",
// dataIndex: 'noNotes'
// },
{
title:'申请日期',
align:"center",
... ... @@ -214,7 +214,7 @@
}
],
url: {
list: "/trad/biddingSq/list",
list: "/trad/biddingSq/list1",
delete: "/trad/tblBiddingShenq/delete",
deleteBatch: "/trad/tblBiddingShenq/deleteBatch",
exportXlsUrl: "/trad/tblBiddingShenq/exportXls",
... ...
... ... @@ -92,34 +92,13 @@
<span v-if="record.chooseStatus == 1">否</span>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" />
<a @click="handleEdit(record)" v-if="cgzg || cjgly">审批</a>
<a-divider type="vertical" v-if="cgzg || cjgly"/>
<!-- <a @click="handleDetail(record)">详情</a>
<a-divider type="vertical" v-if="record.chooseStatus == 1"/>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)" v-if="record.chooseStatus == 1">
<a>删除</a>
</a-popconfirm> -->
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)">详情</a>
</a-menu-item>
<a-menu-item v-if="record.chooseStatus == 1">
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
<a @click="handleApproval2(record)">审批</a>
</span>
</a-table>
</div>
<tbl-bidding-shenq-modal ref="modalForm" @ok="modalFormOk"></tbl-bidding-shenq-modal>
<TblBiddingShenqApproval2Model ref="TblBiddingShenqApproval2Model" @ok="modalFormOk"></TblBiddingShenqApproval2Model>
</a-card>
</template>
... ... @@ -131,11 +110,12 @@
import TblBiddingShenqModal from './modules/TblBiddingShenqModal'
import store from '@/store/'
import { ROLES } from "@/store/mutation-types"
import TblBiddingShenqApproval2Model from './modules/TblBiddingShenqApproval2Model'
export default {
name: 'TblBiddingShenqList',
mixins:[JeecgListMixin, mixinDevice],
components: {
TblBiddingShenqModal
TblBiddingShenqApproval2Model
},
data () {
return {
... ... @@ -221,21 +201,21 @@
align:"center",
dataIndex: 'applicant'
},
{
title:'一级审批人',
align:"center",
dataIndex: 'spOne'
},
{
title:'二级审批人',
align:"center",
dataIndex: 'spTwo'
},
{
title:'不同意备注',
align:"center",
dataIndex: 'noNotes'
},
// {
// title:'一级审批人',
// align:"center",
// dataIndex: 'spOne'
// },
// {
// title:'二级审批人',
// align:"center",
// dataIndex: 'spTwo'
// },
// {
// title:'不同意备注',
// align:"center",
// dataIndex: 'noNotes'
// },
{
title:'申请日期',
align:"center",
... ... @@ -254,7 +234,7 @@
}
],
url: {
list: "/trad/biddingSq/list",
list: "/trad/biddingSq/list2",
delete: "/trad/tblBiddingShenq/delete",
deleteBatch: "/trad/tblBiddingShenq/deleteBatch",
exportXlsUrl: "/trad/tblBiddingShenq/exportXls",
... ... @@ -293,6 +273,10 @@
const cjgly = this.roleCodeList.includes('WorkshopDirector')
this.cjgly = cjgly
},
handleApproval2(record){
this.$refs.TblBiddingShenqApproval2Model.edit(record);
this.$refs.TblBiddingShenqApproval2Model.disableSubmit = false;
},
initDictConfig(){
},
getSuperFieldList(){
... ...
... ... @@ -91,15 +91,27 @@
<span v-if="record.chooseStatus == 0">是</span>
<span v-if="record.chooseStatus == 1">否</span>
</template>
<template slot="approvalResultSlot" slot-scope="text, record">
<a-tag color="green" v-if="record.approvalResult == '1'">同意</a-tag>
<a-tag color="red" v-if="record.approvalResult == '2'">不同意</a-tag>
</template>
<template slot="approvalStatusSlot" slot-scope="text, record">
<a-tag color="orange" v-if="record.approvalStatus == '0'">待审批</a-tag>
<a-tag color="purple" v-if="record.approvalStatus == '1'">审批中</a-tag>
<a-tag color="green" v-if="record.approvalStatus == '2'">审批完成</a-tag>
<!-- <span v-if="record.approvalResult == '1'">同意</span>
<span v-if="record.approvalResult == '2'">不同意</span> -->
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" />
<!-- <a @click="handleDetail(record)">详情</a>
<a-divider type="vertical" v-if="record.chooseStatus == 1"/>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)" v-if="record.chooseStatus == 1">
<a @click="handleEdit(record)" v-if="record.approvalStatus=='0'">编辑</a>
<a-divider type="vertical" v-if="record.approvalStatus=='0'"/>
<a @click="handleDetail(record)">详情</a>
<a-divider type="vertical" v-if="record.approvalStatus=='0'"/>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)" v-if="record.approvalStatus=='0'">
<a>删除</a>
</a-popconfirm> -->
<a-dropdown>
</a-popconfirm>
<!-- <a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
... ... @@ -111,7 +123,7 @@
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</a-dropdown> -->
</span>
</a-table>
... ... @@ -220,20 +232,23 @@
dataIndex: 'applicant'
},
{
title:'一级审批人',
title:'审批状态',
align:"center",
dataIndex: 'spOne'
dataIndex: 'approvalStatus',
scopedSlots: { customRender: 'approvalStatusSlot' }
},
{
title:'二级审批人',
title:'审批结果',
align:"center",
dataIndex: 'spTwo'
},
{
title:'不同意备注',
align:"center",
dataIndex: 'noNotes'
dataIndex: 'approvalResult',
scopedSlots: { customRender: 'approvalResultSlot' }
},
// {
// title:'不同意备注',
// align:"center",
// dataIndex: 'noNotes'
// },
{
title:'申请日期',
align:"center",
... ...
... ... @@ -7,7 +7,7 @@
<a-row>
<a-col :span="24">
<a-form-model-item label="是否同意" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isagree">
<a-radio-group v-model="value" @change="onChange">
<a-radio-group v-model="model.isagree" @change="onChange">
<a-radio :value="'1'">
同意
</a-radio>
... ... @@ -73,7 +73,7 @@
],
},
url: {
add: "/bidding_shenq_approval/tblBiddingShenqApproval/add",
add: "/bidding_shenq_approval/biddingShenqApproval/add",
edit: "/bidding_shenq_approval/tblBiddingShenqApproval/edit",
queryById: "/bidding_shenq_approval/tblBiddingShenqApproval/queryById"
}
... ... @@ -108,18 +108,24 @@
this.$refs.form.validate(valid => {
if (valid) {
console.log(this.model)
return
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
const tempMOdel = {
partNumber:this.model.partNumber,
approvalOpinions:this.model.approvalOpinions,
isagree:this.model.isagree,
approvalLevel:'1'
}
httpAction(httpurl,this.model,method).then((res)=>{
// return
that.confirmLoading = true;
// let httpurl = this.url.add;
let method = 'post';
// if(!this.model.id){
// httpurl+=this.url.add;
// method = 'post';
// }else{
// httpurl+=this.url.edit;
// method = 'put';
// }
httpAction(this.url.add,tempMOdel,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
... ... @@ -128,6 +134,7 @@
}
}).finally(() => {
that.confirmLoading = false;
this.close()
})
}
... ...
<template>
<j-modal :title="title" :width="width" :visible="visible" :confirmLoading="confirmLoading" :maskClosable="false"
switchFullscreen @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<!-- <j-form-container :disabled="formDisabled"> -->
<a-form-model ref="form" :model="model" :rules="validatorRules">
<a-row>
<a-col :span="24">
<a-form-model-item label="审批人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approval">
<a-input v-model="model.approval" placeholder="请输入审批人" ></a-input>
<a-form-model-item label="是否同意" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isagree">
<a-radio-group v-model="model.isagree" @change="onChange">
<a-radio :value="'1'">
同意
</a-radio>
<a-radio :value="'2'">
不同意
</a-radio>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="审批意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalOpinions">
<a-input v-model="model.approvalOpinions" placeholder="请输入审批意见" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否同意" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isagree">
<a-input v-model="model.isagree" placeholder="请输入是否同意" ></a-input>
<a-textarea v-model="model.approvalOpinions" placeholder="请输入审批意见" ></a-textarea>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
<!-- </j-form-container> -->
</a-spin>
</j-modal>
</template>
<script>
... ... @@ -30,7 +36,7 @@
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'TblBiddingShenqApprovalForm',
name: 'TblBiddingShenqApproval2Model',
components: {
},
props: {
... ... @@ -43,8 +49,12 @@
},
data () {
return {
title: "操作",
width: 800,
model:{
},
visible: false,
value:'1',
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
... ... @@ -55,9 +65,15 @@
},
confirmLoading: false,
validatorRules: {
isagree: [
{ required: true, message: '请选择!' },
],
approvalOpinions: [
{ required: true, message: '请输入审批意见!' },
],
},
url: {
add: "/bidding_shenq_approval/tblBiddingShenqApproval/add",
add: "/bidding_shenq_approval/biddingShenqApproval/add2",
edit: "/bidding_shenq_approval/tblBiddingShenqApproval/edit",
queryById: "/bidding_shenq_approval/tblBiddingShenqApproval/queryById"
}
... ... @@ -79,23 +95,37 @@
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
this.model.isagree = '1'
console.log('this.model',this.model)
},
submitForm () {
onChange(e) {
console.log('radio checked', e.target.value);
this.model.isagree = this.value
},
handleOk () {
const that = this;
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
console.log(this.model)
const tempMOdel = {
partNumber:this.model.partNumber,
approvalOpinions:this.model.approvalOpinions,
isagree:this.model.isagree,
approvalLevel:'2'
}
httpAction(httpurl,this.model,method).then((res)=>{
// return
that.confirmLoading = true;
// let httpurl = this.url.add;
let method = 'post';
// if(!this.model.id){
// httpurl+=this.url.add;
// method = 'post';
// }else{
// httpurl+=this.url.edit;
// method = 'put';
// }
httpAction(this.url.add,tempMOdel,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
... ... @@ -104,11 +134,20 @@
}
}).finally(() => {
that.confirmLoading = false;
this.close()
})
}
})
},
close() {
this.$emit('close');
this.visible = false;
this.$refs.form.clearValidate();
},
handleCancel() {
this.close()
},
}
}
</script>
\ No newline at end of file
... ...
... ... @@ -197,7 +197,8 @@ export default {
},{
value:'4',
label:"劳保"
}]
}],
choose:"",
}
},
computed: {
... ... @@ -208,7 +209,7 @@ export default {
created() {
this.loadTree()
//备份model原始值
// this.modelDefault = JSON.parse(JSON.stringify(this.model))
this.modelDefault = JSON.parse(JSON.stringify(this.model))
},
methods: {
...mapGetters(['nickname', 'avatar', 'userInfo']),
... ... @@ -225,8 +226,8 @@ export default {
},
edit(record) {
this.model = Object.assign({}, record)
console.log('this.model',this.model)
this.modelDefault = this.model
this.choose = this.model.chooseStatus
if(!this.model.chooseStatus){
this.model.chooseStatus = '0'
}
... ... @@ -248,7 +249,6 @@ export default {
})
},
onChange(e) {
console.log('this.modelDefault',this.modelDefault)
if(!this.modelDefault.id){
if(e.target.value == '1'){
this.model = {}
... ... @@ -258,13 +258,13 @@ export default {
this.model.chooseStatus = '0'
}
}else if(this.modelDefault.id){
if(e.target.value == '1'){
if((this.choose == '0' && e.target.value == '1') || (this.choose == '1' && e.target.value == '0')){
this.model = {}
this.model.chooseStatus = '1'
}else if(e.target.value == '0'){
this.model.chooseStatus = e.target.value
}else if((this.choose == '0' && e.target.value == '0') || (this.choose == '1' && e.target.value == '1')){
this.model = this.modelDefault
console.log(this.model)
this.model.chooseStatus = '0'
this.model.chooseStatus = e.target.value
}
}
... ...
... ... @@ -6,12 +6,12 @@
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="订货单位">
<j-input placeholder="请输入订货单位" v-model="queryParam.orderCompany"></j-input>
<a-input placeholder="请输入订货单位" v-model="queryParam.orderCompany"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="工作令">
<j-input placeholder="请输入工作令" v-model="queryParam.workOrder"></j-input>
<a-input placeholder="请输入工作令" v-model="queryParam.workOrder"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
... ...
... ... @@ -14,12 +14,11 @@
<script>
import ViewProductionPlanForm from './ViewProductionPlanForm'
import {querygx} from '@/api/manage'
export default {
name: 'ViewProductionPlanModal',
components: {
ViewProductionPlanForm
},
data () {
return {
... ...
... ... @@ -255,6 +255,15 @@ export default {
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
if(!this.model.designPic && !this.model.designFile){
this.$message.warning("请上传生产图或生产图文件!")
return
}
if(this.dataSource.lenth==0){
this.$message.warning("请新增材料及外购件!")
return
}
return
this.model.biddingSqList = this.dataSource
// console.log(this.model)
// return
... ...