|
@@ -159,6 +159,36 @@
|
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
+ <el-form-item label="厂家物料编码" prop="manufacturersMaterialCode">
|
|
|
+ <el-input type="number" min="0" :disabled="disable" v-model="basicForm.manufacturersMaterialCode"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="ABC分类" prop="classifyAbc">
|
|
|
+ <el-select
|
|
|
+ v-model="basicForm.classifyAbc"
|
|
|
+ placeholder="ABC分类"
|
|
|
+ clearable
|
|
|
+ :disabled="disable"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in dict.type.abc_type"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ <!-- <el-input :disabled="disable" v-model="basicForm.classifyAbc"></el-input> -->
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="安全库存" prop="safeStock">
|
|
|
+ <el-input type="number" min="0" :disabled="disable" v-model="basicForm.safeStock"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
<el-form-item label="B2C物料" prop="isB2c">
|
|
|
<el-select
|
|
|
v-model="basicForm.isB2c"
|
|
@@ -198,6 +228,7 @@
|
|
|
v-model="basicForm.isInventoryStatus"
|
|
|
placeholder="批号及库存状态管理"
|
|
|
clearable
|
|
|
+ @change="stockControl"
|
|
|
:disabled="disable"
|
|
|
>
|
|
|
<el-option
|
|
@@ -217,7 +248,8 @@
|
|
|
v-model="basicForm.expiryDateManagerment"
|
|
|
placeholder="效期管理"
|
|
|
clearable
|
|
|
- :disabled="disable"
|
|
|
+ @change="expCt"
|
|
|
+ :disabled="disable || isStock"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in options"
|
|
@@ -246,19 +278,19 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="有效期" prop="usefulLife">
|
|
|
- <el-input type="number" min="0" :disabled="disable" v-model="basicForm.usefulLife"></el-input>
|
|
|
+ <el-form-item label="有效期" prop="usefulLife" :rules="{required: !isExp, message: '请填写有效期', trigger: 'blur'}">
|
|
|
+ <el-input type="number" min="0" :disabled="disable || isExp" v-model="basicForm.usefulLife"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="效期单位" prop="expiryUnitId">
|
|
|
+ <el-form-item label="效期单位" prop="expiryUnitId" :rules="{required: !isExp, message: '请选择效期单位', trigger: 'change'}">
|
|
|
<el-select
|
|
|
v-model="basicForm.expiryUnitId"
|
|
|
- placeholder="效期单位"
|
|
|
+ placeholder="请选择"
|
|
|
clearable
|
|
|
- :disabled="disable"
|
|
|
+ :disabled="disable || isExp"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in dict.type.period_unit"
|
|
@@ -270,12 +302,12 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="有效期至单位" prop="usefulLifeUnitId">
|
|
|
+ <el-form-item label="有效期至单位" prop="usefulLifeUnitId" :rules="{required: !isExp, message: '请选择有效期至单位', trigger: 'change'}">
|
|
|
<el-select
|
|
|
v-model="basicForm.usefulLifeUnitId"
|
|
|
- placeholder="有效期至单位"
|
|
|
+ placeholder="请选择"
|
|
|
clearable
|
|
|
- :disabled="disable"
|
|
|
+ :disabled="disable || isExp"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in dict.type.expiry_date"
|
|
@@ -287,8 +319,8 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="近效期预警天数" prop="recentWarningPeriod">
|
|
|
- <el-input type="number" min="0" :disabled="disable" v-model="basicForm.recentWarningPeriod"></el-input>
|
|
|
+ <el-form-item label="近效期预警天数" prop="recentWarningPeriod" :rules="{required: !isExp, message: '请填写近效期预警天数', trigger: 'blur'}">
|
|
|
+ <el-input type="number" min="0" :disabled="disable || isExp" v-model="basicForm.recentWarningPeriod"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -543,47 +575,36 @@
|
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
+ <el-form-item label="税类编码" prop="rateCode">
|
|
|
+ <el-input :disabled="disable" v-model="basicForm.rateCode"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="中包装单位" prop="mediumPackageUnitId">
|
|
|
+ <el-select
|
|
|
+ ref="midpacks"
|
|
|
+ v-model="basicForm.mediumPackageUnitId"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ :disabled="disable"
|
|
|
+ @focus="chooseMidpack"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in midPackOptions"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ <!-- <el-input :disabled="disable" v-model="basicForm.mediumPackageUnitId"></el-input> -->
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input disabled v-model="basicForm.remark"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-row style="margin-bottom: 12px;">
|
|
|
- <span>物料类别</span>
|
|
|
- </el-row>
|
|
|
- <el-row style="margin-bottom: 12px;">
|
|
|
- <el-button :disabled="disable" type="primary" size="small" plain @click="addLine">新增</el-button>
|
|
|
- <el-button :disabled="disable" type="primary" size="small" plain @click="handleDelete">删除</el-button>
|
|
|
- <!-- <el-button :disabled="disable || isControl" type="primary" size="small" plain @click="testsave">暂存</el-button> -->
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-table
|
|
|
- :data="sysMaterialMedcineItemApply"
|
|
|
- class="request-table"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column type="selection" width="55" />
|
|
|
- <el-table-column label="物料类别ID" align="center" prop="sort">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-input readonly v-model="scope.row.drugId">
|
|
|
- <!-- <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDrug"></el-button> -->
|
|
|
- </el-input>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="物料类别code" align="center" prop="medicineCode">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-input readonly v-model="scope.row.drugCode"></el-input>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="物料类别名称" align="center" prop="medicineName">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-input readonly v-model="scope.row.drugName"></el-input>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
@@ -690,6 +711,45 @@
|
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
|
+ <el-tab-pane label="维护物料类别" name="third">
|
|
|
+ <!-- <el-row style="margin-bottom: 12px;">
|
|
|
+ <span>物料类别</span>
|
|
|
+ </el-row> -->
|
|
|
+ <el-row style="margin-bottom: 12px;">
|
|
|
+ <el-button :disabled="disable" type="primary" size="small" plain @click="addLine">新增</el-button>
|
|
|
+ <el-button :disabled="disable" type="primary" size="small" plain @click="handleDelete">删除</el-button>
|
|
|
+ <!-- <el-button :disabled="disable || isControl" type="primary" size="small" plain @click="testsave">暂存</el-button> -->
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-table
|
|
|
+ :data="sysMaterialMedcineItemApply"
|
|
|
+ class="request-table"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55" />
|
|
|
+ <el-table-column label="物料类别ID" align="center" prop="sort">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input readonly v-model="scope.row.drugId">
|
|
|
+ <!-- <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseDrug"></el-button> -->
|
|
|
+ </el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="物料类别code" align="center" prop="medicineCode">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input readonly v-model="scope.row.drugCode"></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="物料类别名称" align="center" prop="medicineName">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input readonly v-model="scope.row.drugName"></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-tab-pane>
|
|
|
+
|
|
|
<el-tab-pane label="单据信息" name="fourth">
|
|
|
<el-form :model="basicForm" ref="info" label-width="160px">
|
|
|
<el-row :gutter="20">
|
|
@@ -848,6 +908,12 @@
|
|
|
:single="true"
|
|
|
/>
|
|
|
|
|
|
+ <midpack
|
|
|
+ ref="midpack"
|
|
|
+ @doSubmit="acceptMidpack"
|
|
|
+ :selectData="selectData13"
|
|
|
+ :single="true"
|
|
|
+ />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -866,17 +932,19 @@ import depart from '@/components/PopDialog/organization.vue'
|
|
|
// 药品类别子别
|
|
|
import drug from '@/components/PopDialog/drug.vue'
|
|
|
|
|
|
+import midpack from '@/components/PopDialog/midPack.vue'
|
|
|
+
|
|
|
import { addReq, getReqDetail, editReq } from '@/api/requisition/basic'
|
|
|
// 调用物料分类详情接口用于数据回显
|
|
|
import { getDetail } from '@/api/classify/basic';
|
|
|
// 生产厂商/代理人调用用于回显
|
|
|
import { getProductFactory } from '@/api/changeApply/basic'
|
|
|
// 计量单位,产地调用用于回显
|
|
|
-import { getUnit, getPlace, getTax, getStaff, getLine, getDose, getOrgs} from '@/api/requisition/basic'
|
|
|
+import { getUnit, getPlace, getTax, getStaff, getLine, getDose, getOrgs, getMidPack} from '@/api/requisition/basic'
|
|
|
|
|
|
export default {
|
|
|
name: 'requisition_add',
|
|
|
- dicts: ['sys_storage_condition', 'sys_conditions_carriage', 'sys_medicine', 'medical_instruments', 'curing_type', 'period_unit', 'expiry_date'],
|
|
|
+ dicts: ['sys_storage_condition', 'sys_conditions_carriage', 'sys_medicine', 'medical_instruments', 'curing_type', 'period_unit', 'expiry_date', 'abc_type'],
|
|
|
components: {
|
|
|
factory,
|
|
|
fourClass,
|
|
@@ -888,7 +956,8 @@ export default {
|
|
|
dose,
|
|
|
orgs,
|
|
|
depart,
|
|
|
- drug
|
|
|
+ drug,
|
|
|
+ midpack
|
|
|
},
|
|
|
props: ['pageStu', 'row', 'disable'],
|
|
|
model: {
|
|
@@ -907,9 +976,12 @@ export default {
|
|
|
doseOptions: [],
|
|
|
organizationsOptions: [],
|
|
|
departOptions: [],
|
|
|
+ midPackOptions: [],
|
|
|
tabValue: 'first',
|
|
|
isControl: true,
|
|
|
orgControl: true,
|
|
|
+ isStock: false,
|
|
|
+ isExp: false,
|
|
|
basicForm: {
|
|
|
billCode: '',
|
|
|
orgId: '',
|
|
@@ -931,6 +1003,9 @@ export default {
|
|
|
registrant: '',
|
|
|
originPlace: '',
|
|
|
manufacturersMaterialName: '',
|
|
|
+ manufacturersMaterialCode: '',
|
|
|
+ classifyAbc: '',
|
|
|
+ rateCode: '',
|
|
|
isB2c: '2',
|
|
|
assembly: '2',
|
|
|
isInventoryStatus: '0',
|
|
@@ -969,6 +1044,8 @@ export default {
|
|
|
// 新增业务部门
|
|
|
businessDepartment: '',
|
|
|
isEnable: '',
|
|
|
+ safeStock: '',
|
|
|
+ mediumPackageUnitId: '',
|
|
|
remark: '',
|
|
|
// 物料申请单-单据信息
|
|
|
applyBillInfo: {
|
|
@@ -1048,7 +1125,8 @@ export default {
|
|
|
selectData9: [],
|
|
|
selectData10: [],
|
|
|
selectData11: [],
|
|
|
- selectData12: []
|
|
|
+ selectData12: [],
|
|
|
+ selectData13: []
|
|
|
}
|
|
|
},
|
|
|
// watch: {
|
|
@@ -1108,11 +1186,21 @@ export default {
|
|
|
if (this.row.businessLine) {
|
|
|
this.getLineDetails(this.row.businessLine)
|
|
|
}
|
|
|
+ // 中包装单位回显
|
|
|
+ if (this.row.mediumPackageUnitId) {
|
|
|
+ this.getMidPackDetails(this.row.mediumPackageUnitId)
|
|
|
+ }
|
|
|
} else if (this.pageStu == 'edit') {
|
|
|
// alert('修改页面')
|
|
|
console.log('页面状态',this.pageStu)
|
|
|
console.log('数据', this.row)
|
|
|
this.getDetails(this.row)
|
|
|
+ // 控制效期单位后面的是否可填写
|
|
|
+ if (this.row.expiryDateManagerment == '0') {
|
|
|
+ this.isExp = false
|
|
|
+ } else {
|
|
|
+ this.isExp = true
|
|
|
+ }
|
|
|
// 控制业务部门是否能够填写
|
|
|
if (this.row.purchasingOrganization) {
|
|
|
this.orgControl = false
|
|
@@ -1149,6 +1237,10 @@ export default {
|
|
|
if (this.row.businessLine) {
|
|
|
this.getLineDetails(this.row.businessLine)
|
|
|
}
|
|
|
+ // 中包装单位回显
|
|
|
+ if (this.row.mediumPackageUnitId) {
|
|
|
+ this.getMidPackDetails(this.row.mediumPackageUnitId)
|
|
|
+ }
|
|
|
} else if(this.pageStu == 'add') {
|
|
|
// alert('新增页面')
|
|
|
console.log('页面状态',this.pageStu)
|
|
@@ -1159,6 +1251,30 @@ export default {
|
|
|
console.log(tab, event);
|
|
|
console.log('页面状态',this.pageStu)
|
|
|
},
|
|
|
+ // 批号及库存状态管理控制效期管理
|
|
|
+ stockControl(val) {
|
|
|
+ if (val == 0) {
|
|
|
+ this.isStock = false
|
|
|
+ } else {
|
|
|
+ // 联动效期管理
|
|
|
+ this.basicForm.expiryDateManagerment = '2'
|
|
|
+ this.expCt(val)
|
|
|
+ this.isStock = true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 选择效期管理控制后面字段是否可填写
|
|
|
+ expCt(val) {
|
|
|
+ console.log('效期管理值:', val)
|
|
|
+ if (val == 0) {
|
|
|
+ this.isExp = false
|
|
|
+ } else {
|
|
|
+ this.basicForm.usefulLife = ''
|
|
|
+ this.basicForm.expiryUnitId = ''
|
|
|
+ this.basicForm.usefulLifeUnitId = ''
|
|
|
+ this.basicForm.recentWarningPeriod = ''
|
|
|
+ this.isExp = true
|
|
|
+ }
|
|
|
+ },
|
|
|
// 选择采购组织时控制业务部门
|
|
|
controlOrg(val) {
|
|
|
this.basicForm.businessDepartment = ''
|
|
@@ -1271,6 +1387,14 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ // 中包装单位回显
|
|
|
+ getMidPackDetails(id) {
|
|
|
+ getMidPack({id: id}).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.midPackOptions = res.data.tableBody
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
// 如果是详情进入,则调用详情接口
|
|
|
getDetails(row) {
|
|
|
getReqDetail(row.id).then(res => {
|
|
@@ -1317,22 +1441,15 @@ export default {
|
|
|
console.log('提交参数', sparams)
|
|
|
this.$refs['basic'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
- if (this.sysMaterialMedcineItemApply.length !== 0) {
|
|
|
- editReq(sparams).then(res => {
|
|
|
- if(res.code === 200) {
|
|
|
- this.$message({
|
|
|
- message: res.msg,
|
|
|
- type: 'success'
|
|
|
- });
|
|
|
- this.back()
|
|
|
- }
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.$message({
|
|
|
- message: '请维护物料类别后再提交',
|
|
|
- type: 'warning'
|
|
|
- });
|
|
|
- }
|
|
|
+ editReq(sparams).then(res => {
|
|
|
+ if(res.code === 200) {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ this.back()
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
@@ -1345,22 +1462,15 @@ export default {
|
|
|
console.log('保存参数', sparams)
|
|
|
this.$refs['basic'].validate((valid) => {
|
|
|
if(valid) {
|
|
|
- if (this.sysMaterialMedcineItemApply.length !== 0) {
|
|
|
- addReq(sparams).then(res => {
|
|
|
- if(res.code === 200) {
|
|
|
- this.$message({
|
|
|
- message: res.msg,
|
|
|
- type: 'success'
|
|
|
- });
|
|
|
- this.back()
|
|
|
- }
|
|
|
- })
|
|
|
- } else {
|
|
|
- this.$message({
|
|
|
- message: '请维护物料类别后再提交',
|
|
|
- type: 'warning'
|
|
|
- });
|
|
|
- }
|
|
|
+ addReq(sparams).then(res => {
|
|
|
+ if(res.code === 200) {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ this.back()
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -1375,6 +1485,7 @@ export default {
|
|
|
console.log('提交参数', sparams)
|
|
|
this.$refs['basic'].validate((valid) => {
|
|
|
if(valid) {
|
|
|
+ // 提交时候要维护物料类别
|
|
|
if (this.sysMaterialMedcineItemApply.length !== 0) {
|
|
|
editReq(sparams).then(res => {
|
|
|
if(res.code === 200) {
|
|
@@ -1570,6 +1681,19 @@ export default {
|
|
|
chooseDrug () {
|
|
|
this.$refs.drug.init()
|
|
|
},
|
|
|
+ // 选择中包装单位
|
|
|
+ acceptMidpack (selections) {
|
|
|
+ console.log('接收到的中包装单位', selections)
|
|
|
+ this.midPackOptions = selections
|
|
|
+ console.log('绑定的数组',this.midPackOptions)
|
|
|
+ this.basicForm.mediumPackageUnitId = selections[0].id
|
|
|
+ this.getMidPackDetails(selections[0].id)
|
|
|
+ },
|
|
|
+ // 中包装单位显示列表
|
|
|
+ chooseMidpack () {
|
|
|
+ this.$refs.midpacks.blur()
|
|
|
+ this.$refs.midpack.init()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|