You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

417 lines
13 KiB

<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<!-- 主表单区域 -->
<a-form :form="form" slot="detail">
<a-row>
<a-col :span="12" >
<a-form-item label="流程发起公司" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-select-depart v-decorator="['company']" multi />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="流程发起时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择流程发起时间" v-decorator="['createTime']" :trigger-change="true" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="流程发起部门" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-select-depart v-decorator="['sysOrgCode']" multi />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="流程发起人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-select-user-by-dep v-decorator="['createBy']" />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="物资类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag type="list" v-decorator="['materialType']" :trigger-change="true" dictCode="material_type" placeholder="请选择物资类型" />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="流程计划" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag type="list" v-decorator="['processPlan']" :trigger-change="true" dictCode="process_plan" placeholder="请选择流程计划" />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="需求时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择需求时间" v-decorator="['needTime']" :trigger-change="true" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="顺序号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input-number v-decorator="['orderNumber']" placeholder="请输入顺序号" style="width: 100%" />
</a-form-item>
</a-col>
<a-col :span="12" >
<a-form-item label="文件id" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-upload v-decorator="['fileId']" :trigger-change="true" ></j-upload>
</a-form-item>
</a-col>
</a-row>
</a-form>
</j-form-container>
<!-- 子表单区域 -->
<a-tabs v-model="activeKey" @change="handleChangeTabs">
<a-tab-pane tab="预算计划采购流程物料清单表" :key="refKeys[0]" :forceRender="true">
<j-editable-table
:ref="refKeys[0]"
:loading="processUdgetPlanMaterialTable.loading"
:columns="processUdgetPlanMaterialTable.columns"
:dataSource="processUdgetPlanMaterialTable.dataSource"
:maxHeight="300"
:disabled="formDisabled"
:rowNumber="true"
:rowSelection="true"
:actionButton="true"/>
</a-tab-pane>
</a-tabs>
</a-spin>
</template>
<script>
import pick from 'lodash.pick'
import { getAction } from '@/api/manage'
import { FormTypes,getRefPromise } from '@/utils/JEditableTableUtil'
import { JEditableTableMixin } from '@/mixins/JEditableTableMixin'
import JFormContainer from '@/components/jeecg/JFormContainer'
import JDate from '@/components/jeecg/JDate'
import JUpload from '@/components/jeecg/JUpload'
import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
import JSelectUserByDep from '@/components/jeecgbiz/JSelectUserByDep'
import JDictSelectTag from "@/components/dict/JDictSelectTag"
export default {
name: 'ProcessUdgetPlanFormff',
mixins: [JEditableTableMixin],
components: {
JFormContainer,
JDate,
JUpload,
JSelectDepart,
JSelectUserByDep,
JDictSelectTag,
},
data() {
return {
labelCol: {
xs: { span: 24 },
sm: { span: 6 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
labelCol2: {
xs: { span: 24 },
sm: { span: 3 },
},
wrapperCol2: {
xs: { span: 24 },
sm: { span: 20 },
},
// 新增时子表默认添加几行空数据
addDefaultRowNum: 1,
validatorRules: {
},
refKeys: ['processUdgetPlanMaterial', ],
tableKeys:['processUdgetPlanMaterial', ],
activeKey: 'processUdgetPlanMaterial',
// 预算计划采购流程物料清单表
processUdgetPlanMaterialTable: {
loading: false,
dataSource: [],
columns: [
{
title: '物料组',
key: 'materialGroup',
type: FormTypes.sel_search,
dictCode:"",
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '物料号',
key: 'materialNumber',
type: FormTypes.sel_search,
dictCode:"",
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '物料描述',
key: 'materialDescription',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '仓储地点_id',
key: 'unitWasteWarehouseCodeId',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '生产时间',
key: 'productionTime',
type: FormTypes.date,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '保质期',
key: 'expirationDate',
type: FormTypes.date,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '是否到货',
key: 'arrivalNotice',
type: FormTypes.inputNumber,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '入库时间',
key: 'storageTime',
type: FormTypes.date,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '入库人',
key: 'librarySign',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '核算属性',
key: 'materialType',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '物料名称及规格型号',
key: 'materialName',
type: FormTypes.sel_search,
dictCode:"",
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '系列',
key: 'materialSeries',
type: FormTypes.sel_search,
dictCode:"",
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '单位',
key: 'materialUnit',
type: FormTypes.select,
dictCode:"",
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '单价',
key: 'materialPrice',
type: FormTypes.inputNumber,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '对比单价',
key: 'contrastPrice',
type: FormTypes.inputNumber,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '数量',
key: 'materialQuantity',
type: FormTypes.inputNumber,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '金额',
key: 'materialAmount',
type: FormTypes.inputNumber,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '执行标准',
key: 'materialStandard',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '备注',
key: 'remarks',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '删除标志',
key: 'delFlag',
type: FormTypes.inputNumber,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '删除时间',
key: 'delTime',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '修改人',
key: 'updateBy',
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
]
},
url: {
add: "/hy/processUdgetPlan/add",
edit: "/hy/processUdgetPlan/edit",
queryById: "/hy/processUdgetPlan/queryById",
processUdgetPlanMaterial: {
list: '/hy/processUdgetPlan/queryProcessUdgetPlanMaterialByMainId'
},
}
}
},
props: {
//流程表单data
formData: {
type: Object,
default: ()=>{},
required: false
},
//表单模式:false流程表单 true普通表单
formBpm: {
type: Boolean,
default: false,
required: false
},
//表单禁用
disabled: {
type: Boolean,
default: false,
required: false
}
},
computed: {
formDisabled(){
if(this.formBpm===true){
if(this.formData.disabled===false){
return false
}
return true
}
return this.disabled
},
showFlowSubmitButton(){
if(this.formBpm===true){
if(this.formData.disabled===false){
return true
}
}
return false
}
},
created () {
//如果是流程中表单,则需要加载流程表单data
this.showFlowData();
},
methods: {
addBefore(){
alert(3)
this.form.resetFields()
this.processUdgetPlanMaterialTable.dataSource=[]
},
getAllTable() {
let values = this.tableKeys.map(key => getRefPromise(this, key))
console.log('-------->',values)
return Promise.all(values)
},
/** 调用完edit()方法之后会自动调用此方法 */
editAfter() {
let fieldval = pick(this.model,'company','createTime','sysOrgCode','createBy','materialType','processPlan','needTime','orderNumber','fileId')
this.$nextTick(() => {
this.form.setFieldsValue(fieldval)
})
// 加载子表数据
if (this.model.id) {
let params = { id: this.model.id }
this.requestSubTableData(this.url.processUdgetPlanMaterial.list, params, this.processUdgetPlanMaterialTable)
}
},
/** 整理成formData */
classifyIntoFormData(allValues) {
let main = Object.assign(this.model, allValues.formValue)
return {
...main, // 展开
processUdgetPlanMaterialList: allValues.tablesValue[0].values,
}
},
//渲染流程表单数据
showFlowData(){
if(this.formBpm === true){
let params = {id:this.formData.dataId};
getAction(this.url.queryById,params).then((res)=>{
if(res.success){
this.edit (res.result);
}
})
}
},
validateError(msg){
this.$message.error(msg)
},
popupCallback(row){
this.form.setFieldsValue(pick(row,'company','createTime','sysOrgCode','createBy','materialType','processPlan','needTime','orderNumber','fileId'))
},
}
}
</script>
<style scoped>
</style>