提交 0c488269 编写于 作者: tao.wu's avatar tao.wu

检测服务联调

上级 b1469a82
......@@ -13,6 +13,14 @@ export const getGoodsList = (params) => {
description: '商品列表查询',
})
};
export const getGoodDetails = (goodsId) => {
return fetch({
headers,
url: getBaseUrl(`store/goods/medical/service/detail/${goodsId}/-1`),
method: 'get',
description: '商品详情查询',
})
}
export const uploadExcel = data => {
// return utils.checkAuth(()=>{
return fetch({
......
......@@ -16,7 +16,6 @@
:rules="rules"
label-width="150px"
label-suffix=":"
class="basic-form"
>
......@@ -84,10 +83,11 @@
v-model="formData.goodsType"
placeholder="请选择商品类型"
size="small"
:disabled="isEdit"
@change="getGoodsTypes(formData.goodsType,2)">
<el-option
v-for="(item,index) in oneLever"
:key="index"
:key="item.categoryName+'-'+index"
:label="item.categoryName"
:value="item.id"
></el-option>
......@@ -95,14 +95,23 @@
</el-form-item>
<!-- <p class="upload-message" v-if="uploadImgMessage1">请上传商品头图</p> -->
</div>
</el-form>
<div class="basic-item-icon" v-if="isMedic && !isCheckServe">
<el-form
ref="formData"
:model="formData1"
:rules="rules1"
label-width="150px"
label-suffix=":"
class="basic-form"
>
<div class="basic-item-icon" v-show="isMedic && !isCheckServe">
<div class="part-tit">药品信息</div>
<el-form-item label="条形码" prop="barCode">
<el-col :span="18">
<el-input
size="small"
v-model="formData.barCode"
v-model="formData1.barCode"
placeholder="请输入条形码"
></el-input>
<span class="fast-opt" @click="fastInput">快速录入</span>
......@@ -113,7 +122,7 @@
<el-col :span="18">
<el-input
size="small"
v-model="formData.approvalNumber"
v-model="formData1.approvalNumber"
placeholder="请输入批准文号"
style="width:50%;"
></el-input>
......@@ -124,7 +133,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.medicCommonName"
v-model="formData1.medicCommonName"
placeholder="请输入药品通用名称"
style="width:70%;"
maxlength="60"
......@@ -138,7 +147,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.medicGoodsName"
v-model="formData1.medicGoodsName"
placeholder="请输入药品商品名称"
maxlength="60"
......@@ -152,7 +161,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.size"
v-model="formData1.size"
placeholder="请输入药品规格"
style="width:70%;"
></el-input>
......@@ -163,13 +172,13 @@
<div class="inline">
<el-form-item label="是否是处方药" prop="otc1">
<el-col :span="24">
<el-radio size="mini" v-model="formData.otc1" label="1">处方药</el-radio>
<el-radio v-model="formData.otc1" label="0">非处方药</el-radio>
<el-radio size="mini" v-model="formData1.otc1" label="1">处方药</el-radio>
<el-radio v-model="formData1.otc1" label="0">非处方药</el-radio>
</el-col>
</el-form-item>
<el-form-item label="剂型" prop="dosageId">
<el-select
v-model="formData.dosageId"
v-model="formData1.dosageId"
placeholder="请选择药品剂型"
size="small"
clearable>
......@@ -186,7 +195,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.usage"
v-model="formData1.usage"
placeholder="请输入用法用量"
style="width:70%;"
></el-input>
......@@ -197,10 +206,10 @@
<el-form-item label="药品类型" prop="categoryIdLevel2">
<el-select
v-model="formData.categoryIdLevel2"
v-model="formData1.categoryIdLevel2"
placeholder="请选择药品类型"
size="small"
@change="getLever(formData.categoryIdLevel2,3)"
@change="getLever(formData1.categoryIdLevel2,3)"
clearable
>
<el-option
......@@ -214,10 +223,10 @@
<div class="inline">
<el-form-item label="一级类目" prop="categoryIdLevel3" >
<el-select
v-model="formData.categoryIdLevel3"
v-model="formData1.categoryIdLevel3"
placeholder="请选择一级类目"
size="small"
@change="getLever(formData.categoryIdLevel3,4)"
@change="getLever(formData1.categoryIdLevel3,4)"
>
<el-option
v-for="(item,index) in threeLever"
......@@ -229,10 +238,10 @@
</el-form-item>
<el-form-item label="二级类目" prop="categoryIdLevel4" >
<el-select
v-model="formData.categoryIdLevel4"
v-model="formData1.categoryIdLevel4"
placeholder="请选择二级类目"
size="small"
@change="getLever(formData.categoryIdLevel4,5)"
@change="getLever(formData1.categoryIdLevel4,5)"
>
<el-option
v-for="(item,index) in fourLever"
......@@ -244,7 +253,7 @@
</el-form-item>
<el-form-item label="三级级类目" prop="categoryIdLevel5">
<el-select
v-model="formData.categoryIdLevel5"
v-model="formData1.categoryIdLevel5"
placeholder="请选择三级类目"
size="small"
>
......@@ -261,7 +270,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.manufacturer"
v-model="formData1.manufacturer"
placeholder="请输入生产厂家"
style="width:70%;"
></el-input>
......@@ -273,7 +282,7 @@
<el-form-item label="适用科室" prop="department">
<el-input
size="small"
v-model="formData.department"
v-model="formData1.department"
placeholder="请输入适用科室"
></el-input>
......@@ -295,7 +304,7 @@
<el-col :span="24">
<el-input
size="small"
v-model="formData.treatDisease"
v-model="formData1.treatDisease"
placeholder="请输入治疗疾病"
></el-input>
......@@ -309,7 +318,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.expiredTime"
v-model="formData1.expiredTime"
placeholder="请输入有效期"
style="width:70%;"
></el-input>
......@@ -356,6 +365,7 @@
<p class="upload-message" v-if="!isSpecification_url">请上传药品说明书</p>
</el-form-item>
</div>
</el-form>
......@@ -382,14 +392,21 @@
=========================================================调试新增检测服务 start========================================================= -->
<div class="basic-item-icon" v-if="!isMedic && isCheckServe">
<el-form
ref="formData"
:model="formData2"
:rules="rules2"
label-width="150px"
label-suffix=":"
class="basic-form"
>
<div class="basic-item-icon" v-show="!isMedic && isCheckServe">
<div class="part-tit">服务信息</div>
<el-form-item label="条形码" prop="barCode">
<el-col :span="18">
<el-input
size="small"
v-model="formData.barCode"
v-model="formData2.barCode"
placeholder="请输入条形码"
></el-input>
<span class="fast-opt" @click="fastInput">快速录入</span>
......@@ -408,7 +425,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.checkName"
v-model="formData2.checkName"
placeholder="请输入检测名称"
show-word-limit
maxlength="60"
......@@ -419,7 +436,7 @@
<el-col :span="13">
<el-input
size="small"
v-model="formData.hospitalName"
v-model="formData2.hospitalName"
placeholder="请输入医疗机构名称"
show-word-limit
></el-input>
......@@ -427,7 +444,7 @@
</el-form-item>
<el-form-item label="医疗机构类型" prop="hospitalType">
<el-select
v-model="formData.hospitalType"
v-model="formData2.hospitalType"
placeholder="请选择"
size="small"
>
......@@ -445,7 +462,7 @@
type="textarea"
rows="4"
size="small"
v-model="formData.checkItem"
v-model="formData2.checkItem"
placeholder="请输入检测项目"
maxlength="400"
show-word-limit
......@@ -458,7 +475,7 @@
type="textarea"
rows="4"
size="small"
v-model="formData.checkStandard"
v-model="formData2.checkStandard"
placeholder="请输入检测指标"
maxlength="400"
show-word-limit
......@@ -468,25 +485,25 @@
<el-form-item label="使用人数" prop="useCount" class="required-label">
<el-col :span="20">
<div class="stock-com">
<span class="sp sp-l" @click="formData.useCount>0?formData.useCount--:''" :class="{'opac':formData.useCount == 0}"><i class="el-icon-minus"></i></span>
<span class="sp sp-l" @click="formData2.useCount>0?formData2.useCount--:''" :class="{'opac':formData2.useCount == 0}"><i class="el-icon-minus"></i></span>
<span class="sp sp-c">
<el-input
type="number"
rows="4"
size="small"
v-model="formData.useCount"
v-model="formData2.useCount"
placeholder="请输入使用人数"
></el-input>
<!-- <input style="text-align:center;width:100%;height:100%;border:none;outline:none;" v-model="formData.useCount" type="text" placeholder="0"> -->
</span>
<span class="sp sp-r" @click="formData.useCount++"><i class="el-icon-plus"></i></span>
<span class="sp sp-r" @click="formData2.useCount++"><i class="el-icon-plus"></i></span>
</div>
<!-- <p class="error-message" v-if="formData.useCount<=0">使用人数必须大于0</p> -->
</el-col>
</el-form-item>
<el-form-item label="检测类型" prop="checkType">
<el-select
v-model="formData.checkType"
v-model="formData2.checkType"
placeholder="请选择"
size="small"
>
......@@ -498,16 +515,16 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="适用人群" prop="suitableStr">
<el-form-item label="适用人群" prop="suitableArr">
<el-select
v-model="formData.suitableStr"
v-model="formData2.suitableArr"
:multiple="true"
placeholder="请选择"
size="small"
>
<el-option
v-for="(item,index) in suitableList"
:key="index"
:key="item+'_'+index"
:label="item.label"
:value="item.value"
></el-option>
......@@ -519,7 +536,7 @@
type="textarea"
rows="4"
size="small"
v-model="formData.accessorialService"
v-model="formData2.accessorialService"
placeholder="请输入附加服务"
maxlength="400"
show-word-limit
......@@ -528,7 +545,7 @@
</el-form-item>
<el-form-item label="商品使用日期" prop="endTime" class="required-label">
<el-date-picker
v-model="formData.endTime"
v-model="formData2.endTime"
size="small"
type="datetime"
placeholder="请选择商品使用日期"
......@@ -564,6 +581,7 @@
<p class="upload-message" v-if="!isgoodsImages">请上传检测说明图</p>
</el-form-item>
</div>
</el-form>
......@@ -597,7 +615,14 @@
<el-form
ref="formData"
:model="formData"
:rules="rules"
label-width="150px"
label-suffix=":"
class="basic-form"
>
<div class="basic-item-icon">
<div class="part-tit">销售信息</div>
<div class="inline">
......@@ -674,197 +699,12 @@
let vm = null;
import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
import { updateGoods ,updateStock,dosageAll,getDeparts,getGoodsList, updateGoodsV2} from '@/utils/goods';
import { updateGoods ,updateStock,dosageAll,getDeparts,getGoodsList, getGoodDetails, updateGoodsV2} from '@/utils/goods';
import Cropper from '@/components/common/cropper.vue'
import { mapGetters } from "vuex";
const checkBarcode = (rule, value, cb) => {
const valedBarcode = new RegExp("[\\u4E00-\\u9FFF]+","g");
if(value && valedBarcode.test(value)) cb(new Error('条形码不能输入中文'));
cb();
}
const checkNumber = (rule, value, cb) => {
const val = String(value);
const isInt = /^([1-9][0-9]*)$/;
if(val && !isInt.test(val)) cb(new Error('请输入正整数'));
cb();
}
const checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
const form1 = {
categoryIdLevel2: '',
categoryIdLevel3: '',
categoryIdLevel4: '',
categoryIdLevel5: '',
medicCommonName:'',
medicGoodsName:'',
size:'',
dosageId:null,
usage:'',
otc1:'1',
approvalNumber:'',
manufacturer:'',
department:'',
expiredTime:'',
specification_url:'',
treatDisease:'',
}
const rules1 = {
medicCommonName:[
{ required: true, message: "请输入商品通用名称", trigger: "blur" }
],
size:[
{ required: true, message: "请输入商品规格", trigger: "blur" }
],
manufacturer:[
{ required: true, message: "请输入生产厂家", trigger: "blur" }
],
approvalNumber:[
{ required: true, message: "请输入批准文号", trigger: "blur" }
],
dosageId:[
{ required: true, message: "请选择剂型", trigger: "change" }
],
categoryIdLevel2:[
{ required: true, message: "请选择药品类型", trigger: "blur" }
],
categoryIdLevel3:[
{ required: true, message: "请选择一级类目", trigger: "blur" }
],
categoryIdLevel4:[
{ required: true, message: "请选择二级类目", trigger: "blur" }
],
categoryIdLevel5:[
{ required: true, message: "请选择三级类目", trigger: "blur" }
],
specification_url:[
{ required: true, message: "请上传药品说明书", trigger: "blur" }
],
// barCode: [
// { required: true, message: "请输入条形码", trigger: "blur" },
// { validator: checkBarcode, trigger: "blur" }
// ],
otc:[
{ required: true, message: "请选择是否是处方", trigger: "blur" }
],
dynamicFlag: [
{ required: true, message: "请选择内容发布权", trigger: "blur" },
],
}
const form2 = {
// checkPackageId: '', // 检测登记表,暂无,先隐藏!!!!!!!!!!!
checkName: '',
hospitalName: '',
hospitalType: '',
hospitalId: 0,
goodsId: 0, // 新增时传0,更新时必需>0
medicalServiceId: 0, // 新增时传0,更新时必需>0
goodsCheckImages: [],
checkItem: '',
checkStandard: '',
useCount: 0,
checkType: '',
suitable: '',
suitableStr: '',
accessorialService: '',
endTime: '',
goodsStock:0,
stock: 0
}
const rules2 = {
checkName: [{ required: true, message: "请输入检测名称", trigger: "blur" }],
hospitalName: [{ required: true, message: "请输入医疗机构名称", trigger: "blur" }],
hospitalType: [{ required: true, message: "请选择医疗机构类型", trigger: "blur" }],
checkItem: [{ required: true, message: "请输入检测项目", trigger: "blur" }],
checkStandard: [{ required: true, message: "请输入检测指标", trigger: "blur" }],
useCount: [{ required: true, message: "请输入使用人数", trigger: "blur" },{validator: checkNumber, trigger: "blur"}],
checkType: [{ required: true, message: "请选择检测类型", trigger: "blur" }],
suitableStr: [{ required: true, message: "请选择适用人群", trigger: "blur" }],
endTime: [{ required: true, message: "请选择商品使用日期", trigger: "blur" }],
// goodsCheckImages: [
// { required: true, message: "请上传检测说明图", trigger: "blur" }
// ],
}
const form = {
// medicationId: 0,
id: 0,
// categoryId:'',
goodsName:'',
goodsDescription:'',
goodsHeaderImages:[],
goodsType:'',
barCode: '',
// otc:false,
// discountPrice:'',
// stock:0,
// goodsStock:0,
// specificationImages:[],
costPrice:0,
decrStock:0,//减少库存
incrStock:'',//增加库存
storeId: '',
optPrice:0,
};
const rules = {
barCode: [
{ required: true, message: "请输入条形码", trigger: "blur" },
{ validator: checkBarcode, trigger: "blur" }
],
goodsName: [
{ required: true, message: "请输入商品名称", trigger: "blur" },
{ validator: checkProjectStr, trigger: "blur" }
],
goodsHeaderImages: [
{ required: true, message: "请上传商品头图", trigger: "blur" }
],
goodsType:[
{ required: true, message: "请选择商品类型", trigger: "change" }
],
optPrice: [
{ required: true, message: "请输入零售价", trigger: "blur" },
],
// introduce: [
// { required: true, message: "请输入圈子介绍", trigger: "blur" },
// {
// min: 2,
// max: 40,
// message: "输入长度为2-40的内容,可包含中英文、数字及特殊符号",
// trigger: "blur"
// },
// { validator: checkProjectStr, trigger: "blur" }
// ],
}
const originForm1 = JSON.parse(JSON.stringify(form1));
const originRules1 = JSON.parse(JSON.stringify(rules1));
const originForm2 = JSON.parse(JSON.stringify(form2));
const originRules2 = JSON.parse(JSON.stringify(rules2));
const originForm = JSON.parse(JSON.stringify(form));
const originRules = JSON.parse(JSON.stringify(rules));
import { originRules1, originRules2, originRules } from './rules';
import { originForm1, originForm2, originForm } from './forms';
export default {
components: {
......@@ -872,22 +712,8 @@
Cropper
},
data(){
let checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
return{
isEdit: false,
stock:{
title:'减少库存',
type:1,
......@@ -936,19 +762,19 @@
value: '3',
}],
checkPackageList: [], // 检测登记表
hospitalTypeList: [{label:'村卫生室',value:'1'},{label:'乡镇卫生院/中心',value:'2'}], // 医疗机构类型
checkTypeList: [{label:'常规检测',value:'1'}], // 检测类型
hospitalTypeList: [{label:'村卫生室',value:1},{label:'乡镇卫生院/中心',value:2}], // 医疗机构类型
checkTypeList: [{label:'常规检测',value:1}], // 检测类型
suitableList: [{label:'儿童',value:'1'},{label:'青年',value:'2'},{label:'中年',value:'3'},{label:'老年',value:'4'}], // 适用人群
// 不同类型服务的表单通用字段
// 不同类型服务的表单通用字段
// 不同类型服务的表单通用字段
formData: {
},
rules: {
},
formData: {},
formData1: {},
formData2: {},
rules: {},
rules1: {},
rules2: {},
// 不同类型服务的表单通用字段
// 不同类型服务的表单通用字段
// 不同类型服务的表单通用字段
......@@ -981,15 +807,22 @@
},
created() {
vm = this;
const { id, storeId, goodsType } = this.$route.query;
this.formData = originForm;
this.formData1 = originForm1;
this.formData2 = originForm2;
this.rules = originRules;
this.rules1 = originRules1;
this.rules2 = originRules2;
const {id, storeId} = this.$route.query;
this.jumPathThird = '/goods-manage?storeId='+storeId
//this.jumPathThird = '/create-good?id=add&storeId=46'
this.title = id == 'add' ? '新增商品' : '编辑商品'
this.curmbThird = this.title
this.title = id == 'add' ? '新增商品' : '编辑商品';
this.isEdit = id != 'add';
this.curmbThird = this.title;
this.formData.storeId = Number(storeId) || '';
this.getLever(0,1)
dosageAll().then((res)=>{
......@@ -1004,14 +837,13 @@
// this.formData = {...goods}
// console.log(goods)
this.formData.goodsId = id;
this.getDetailByEdit(id)
this.getDetailByEdit(id, goodsType);
}
},
methods: {
//eidt状态
getDetailByEdit(id){
getDetailByEdit(id, goodsType){
let parm = {
goodsIdList:[id],
goodsName :'',
......@@ -1019,47 +851,100 @@
pageNo:1,
pageSize: 10,
}
getGoodsList(parm).then((res)=>{
if(res.code != '000000'){
return this.$message({
message: res.message,
type: 'error'
});
}
closeLoading(this);
if(res.data == null){
return this.$message({
message: '数据加载失败',
type: 'error'
});
}
const {goodsList} = res.data
this.formData = Object.assign(this.formData,{...goodsList[0]})
this.formData.optPrice = this.formData.costPrice/100;
this.fileGoodsList = this.getImges(goodsList[0].goodsImgList,1)
this.fileIntrList = this.getImges(goodsList[0].medicImgList,2)
this.isMedic = this.formData.goodsType == 5 ? true : false
// this.isCheckServe = this.formData.goodsType == 337 ? true : false
this.formData.stock = this.formData.goodsStock
console.log(this.formData.otc)
this.formData.otc1 = this.formData.otc ? '1' : '0'
if(this.isMedic){
this.getLever(5,2,1)
}
const {categoryIdLevel2,categoryIdLevel3,categoryIdLevel4,categoryIdLevel5} = this.formData
if(categoryIdLevel2 != -1){
this.getLever(categoryIdLevel2,3,1)
}
if(categoryIdLevel3 != -1){
this.getLever(categoryIdLevel3,4,1)
}
if(categoryIdLevel4 != -1){
this.getLever(categoryIdLevel4,5,1)
}
console.log(this.formData)
//this.totalRows = res.data.totalCount
})
// this.isMedic = this.formData.goodsType == 5 ? true : false
// this.isCheckServe = this.formData.goodsType == 337 ? true : false
if(goodsType == 5){
this.isMedic = true;
}else if(goodsType == 337){
this.isCheckServe = true;
}
if(goodsType == 337){
getGoodDetails(id).then((res)=>{
console.log(`========================>`, res);
if(res.code != '000000'){
return this.$message({
message: res.message,
type: 'error'
});
};
closeLoading(this);
if(res.data == null){
return this.$message({
type: 'error'
});
};
const { goodsInfo, medicalService } = res.data;
this.formData1 = goodsInfo;
this.formData2 = medicalService;
// this.formData = Object.assign(goodsInfo, medicalService);
this.formData = { ...goodsInfo, ...medicalService };
this.formData.suitableArr = this.formData.suitable.split(',');
this.formData.optPrice = this.formData.costPrice/100;
this.formData.stock = this.formData.goodsStock;
// this.formData.checkType;
// this.formData.otc1 = this.formData.otc ? '1' : '0'
this.fileGoodsList = this.getImges(goodsInfo.goodsHeaderImages,1);
this.goodsCheckList = this.getImges(medicalService.goodsCheckImages, goodsType);
this.rules = {
...this.rules,
...originRules
};
});
}else{
getGoodsList(parm).then((res)=>{
if(res.code != '000000'){
return this.$message({
message: res.message,
type: 'error'
});
}
closeLoading(this);
if(res.data == null){
return this.$message({
type: 'error'
});
}
const {goodsList} = res.data;
this.formData = Object.assign(this.formData,{...goodsList[0]})
this.formData.optPrice = this.formData.costPrice/100;
this.fileGoodsList = this.getImges(goodsList[0].goodsImgList,1);
this.fileIntrList = this.getImges(goodsList[0].medicImgList,2);
this.formData.stock = this.formData.goodsStock;
// console.log(this.formData.otc)
this.formData.otc1 = this.formData.otc ? '1' : '0'
if(this.isMedic){
this.getLever(5,2,1)
}
const {categoryIdLevel2,categoryIdLevel3,categoryIdLevel4,categoryIdLevel5} = this.formData
if(categoryIdLevel2 != -1){
this.getLever(categoryIdLevel2,3,1)
}
if(categoryIdLevel3 != -1){
this.getLever(categoryIdLevel3,4,1)
}
if(categoryIdLevel4 != -1){
this.getLever(categoryIdLevel4,5,1)
}
//this.totalRows = res.data.totalCount
this.rules = {
...this.rules,
...originRules
};
});
}
console.log(this.formData);
},
getImges(d,type){
......@@ -1069,8 +954,10 @@
a.push({
url:type==1 ?d[i].goodsImgUrl :d[i].imageUrl,
imageUrl:type==1 ?d[i].goodsImgUrl :d[i].imageUrl,
goodsImgUrl:type==1 ?d[i].goodsImgUrl :d[i].imageUrl,
id: d[i].id,
imageSort: d[i].imageSort,
imgSort: d[i].imgSort,
imageType: type == 1 ? d[i].imgType : d[i].imageType,
})
}
......@@ -1150,58 +1037,39 @@
});
},
getGoodsTypes(id,type){
this.formData = originForm;
this.rules = originRules;
if(id == 5 ){
getGoodsTypes(goodsType,type){
// this.formData = {};
// this.formData = this.comFormData;
// this.rules = this.comRuleData;
// this.rules = {};
if(goodsType == 5){
this.isMedic = true;
this.isCheckServe = false;
this.formData = {
...this.formData,
...originForm1
};
this.rules = {
...this.rules,
...originRules1
};
this.getLever(id,type)
} else if( id == 337 ){
this.getLever(goodsType,type);
// this.formData = { ...originForm, ...originForm1 };
// this.rules = { ...originForm, ...originRules1 };
// // this.formData1 = originForm1;
// // this.formData2 = originForm2;
// this.rules = originRules;
// this.rules1 = originRules1;
// this.rules2 = originRules2;
// Object.assign(this.formData, {...originForm1});
// Object.assign(this.rules, {...originRules1});
} else if(goodsType == 337){
this.isMedic = false;
this.isCheckServe = true;
this.formData = {
...this.formData,
...originForm2
};
this.rules = {
...this.rules,
...originRules2
};
console.log(`=========================================================调试新增检测服务 start=========================================================`);
console.log(this.formData);
console.log(this.rules);
console.log(`=========================================================调试新增检测服务 end=========================================================`);
// Object.assign(this.formData, {...originForm2});
// Object.assign(this.rules, {...originRules2});
}else{
this.isMedic = false;
this.isCheckServe = false;
this.formData = {
...this.formData,
...originForm1
};
this.rules = {
...this.rules,
...originRules1
};
}
// Object.assign(this.formData, {...originForm});
// Object.assign(this.rules, originRules);
};
// this.$forceUpdate();
console.log(this.formData);
},
......@@ -1230,7 +1098,7 @@
//this.twoLever = res.data || this.defaultArr()
res.data = res.data.length > 0 ? res.data.concat([{categoryName: "其他",id:-1}]) : this.defaultArr()
this.twoLever = res.data
console.log(this.twoLever)
// console.log(this.twoLever)
}else if(type == 3){
// res.data = res.data.push({categoryName: "其他",id:-1})
res.data = res.data.length > 0 ? res.data.concat([{categoryName: "其他",id:-1}]) : this.defaultArr()
......@@ -1309,6 +1177,10 @@
},
complete() {
let formName = "formData";
this.formData = {...this.formData, ...this.formData1, ...this.formData2 };
for(let i=0;i<this.fileGoodsList.length;i++){
this.fileGoodsList[i].imageSort = i+1
}
......@@ -1316,16 +1188,21 @@
this.fileIntrList[j].imageSort = j+1
}
this.formData.goodsHeaderImages = this.fileGoodsList;
this.formData.specificationImages = this.fileIntrList;
this.isgoodsImages = this.formData.goodsHeaderImages.length == 0 ? false :true;
// this.formData.goodsHeaderImages = this.fileGoodsList;
// this.formData.specificationImages = this.fileIntrList;
// this.isgoodsImages = this.formData.goodsHeaderImages.length == 0 ? false :true;
// this.isSpecification_url = this.formData.specificationImages.length == 0 ? false : true
this.formData.categoryId = this.formData.goodsType
this.formData.otc = this.formData.otc1 == 1 ? true : false
this.isgoodStock = this.formData.stock > 0 ? true : false
console.log(this.isgoodStock);
this.formData.goodsImages = this.fileGoodsList;
this.formData.goodsHeaderImages = this.fileGoodsList;
this.formData.specificationImages = this.fileIntrList;
this.isgoodsImages = this.formData.goodsImages.length == 0 ? false :true;
// 如果是【药品】类型的商品
if(this.isMedic){
if(!this.isgoodsImages){
return;
}
......@@ -1333,8 +1210,9 @@
// 如果是【检测服务】类型的商品
if(this.isCheckServe){
this.formData.goodsCheckImages = this.goodsCheckList;
const { suitableStr } = this.formData;
this.formData.suitable = suitableStr.join(',');
const { suitableArr } = this.formData;
this.formData.suitable = suitableArr.join(',');
this.formData.medicalServiceId = this.formData.medicationId;
}
if(!this.isgoodStock){
......@@ -1364,7 +1242,7 @@
type: 'error'
});
}
vm.$message.success("操作成功");
this.$router.push({
path: '/goods-manage',
......@@ -1402,6 +1280,7 @@
console.log('上传成功后路径', path);
let len = vm.fileGoodsList.length;
vm.fileGoodsList.push({ url: path.fullPath, goodsImgUrl: path.fullPath, imgSort: len+1, goodsId: vm.formData.goodsId });
// vm.fileGoodsList.push({url:path.fullPath,goodsImgUrl: path.fullPath,imageUrl:path.fullPath,imageName:'',imageSort: len+1,imageType: 2,id: null,})
vm.$message.success("上传成功");
});
};
......
const form1 = {
categoryIdLevel2: '',
categoryIdLevel3: '',
categoryIdLevel4: '',
categoryIdLevel5: '',
medicCommonName:'',
medicGoodsName:'',
size:'',
dosageId:null,
usage:'',
otc1:'1',
approvalNumber:'',
manufacturer:'',
department:'',
expiredTime:'',
specification_url:'',
treatDisease:'',
}
const form2 = {
// checkPackageId: '', // 检测登记表,暂无,先隐藏!!!!!!!!!!!
barCode: '',
checkName: '',
hospitalName: '',
hospitalType: '',
hospitalId: 0,
goodsId: 0, // 新增时传0,更新时必需>0
medicalServiceId: 0, // 新增时传0,更新时必需>0
goodsCheckImages: [],
checkItem: '',
checkStandard: '',
useCount: 0,
checkType: '',
suitable: '',
suitableStr: '',
accessorialService: '',
endTime: '',
medicalServiceId: ''
}
const form = {
// medicationId: 0,
// categoryId:'',
// otc:false,
// discountPrice:'',
// stock:0,
// goodsStock:0,
// specificationImages:[],
id: 0,
goodsName:'',
goodsDescription:'',
goodsHeaderImages:[],
goodsType:'',
barCode: '',
costPrice:0,
decrStock:0,//减少库存
incrStock:'',//增加库存
storeId: '',
optPrice:'',
goodsStock:0,
stock: 0
};
export const originForm1 = form1;
export const originForm2 = form2;
export const originForm = form;
\ No newline at end of file
......@@ -177,21 +177,24 @@
import { getGoodsList,batchOnOff,uploadExcel} from '@/utils/goods';
import { getBaseUrl } from '@/utils/index'
var typeList = [{
categoryName: "短信额度",
id: 1,
}, {
categoryName: "学习卡",
id: 2,
}, {
categoryName: "职称考卡",
id: 3,
},{
categoryName: "医疗器械",
id: 4,
},{
categoryName: "药品",
id: 5,
}]
categoryName: "短信额度",
id: 1,
}, {
categoryName: "学习卡",
id: 2,
}, {
categoryName: "职称考卡",
id: 3,
},{
categoryName: "医疗器械",
id: 4,
},{
categoryName: "药品",
id: 5,
},{
categoryName: "检测服务",
id: 337,
}];
export default {
components: {
BreadCrumb
......@@ -412,11 +415,12 @@
}
},
edit(row){
const { goodsType } = row;
let url = ''
if(row == 'add'){
url = `/create-good?id=add&storeId=${this.searchForm.storeId}`
}else{
url = `/create-good?id=${row.goodsId}&storeId=${this.searchForm.storeId}`
url = `/create-good?id=${row.goodsId}&storeId=${this.searchForm.storeId}&goodsType=${goodsType}`
}
this.$store.dispatch('goodsManage/changeGoodsInfo', {...row});
this.$router.push({
......
const checkBarcode = (rule, value, cb) => {
const valedBarcode = new RegExp("[\\u4E00-\\u9FFF]+","g");
if(value && valedBarcode.test(value)) cb(new Error('条形码不能输入中文'));
cb();
};
const checkNumber = (rule, value, cb) => {
const val = String(value);
const isInt = /^([1-9][0-9]*)$/;
if(val && !isInt.test(val)) cb(new Error('请输入正整数'));
cb();
};
const checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
const rules1 = {
medicCommonName:[
{ required: true, message: "请输入商品通用名称", trigger: "blur" }
],
size:[
{ required: true, message: "请输入商品规格", trigger: "blur" }
],
manufacturer:[
{ required: true, message: "请输入生产厂家", trigger: "blur" }
],
approvalNumber:[
{ required: true, message: "请输入批准文号", trigger: "blur" }
],
dosageId:[
{ required: true, message: "请选择剂型", trigger: "change" }
],
categoryIdLevel2:[
{ required: true, message: "请选择药品类型", trigger: "blur" }
],
categoryIdLevel3:[
{ required: true, message: "请选择一级类目", trigger: "blur" }
],
categoryIdLevel4:[
{ required: true, message: "请选择二级类目", trigger: "blur" }
],
categoryIdLevel5:[
{ required: true, message: "请选择三级类目", trigger: "blur" }
],
specification_url:[
{ required: true, message: "请上传药品说明书", trigger: "blur" }
],
// otc:[
// { required: true, message: "请选择是否是处方", trigger: "blur" }
// ],
dynamicFlag: [
{ required: true, message: "请选择内容发布权", trigger: "blur" },
],
}
const rules2 = {
barCode: [
{ required: true, message: "请输入条形码", trigger: "submit" },
{ validator: checkBarcode, trigger: "submit" }
],
checkName: [{ required: true, message: "请输入检测名称", trigger: "blur" }],
hospitalName: [{ required: true, message: "请输入医疗机构名称", trigger: "blur" }],
hospitalType: [{ required: true, message: "请选择医疗机构类型", trigger: "blur" }],
checkItem: [{ required: true, message: "请输入检测项目", trigger: "blur" }],
checkStandard: [{ required: true, message: "请输入检测指标", trigger: "blur" }],
useCount: [{ required: true, message: "请输入使用人数", trigger: "submit" },{validator: checkNumber, trigger: "submit"}],
checkType: [{ required: true, message: "请选择检测类型", trigger: "blur" }],
suitableStr: [{ required: true, message: "请选择适用人群", trigger: "blur" }],
endTime: [{ required: true, message: "请选择商品使用日期", trigger: "blur" }],
// goodsCheckImages: [
// { required: true, message: "请上传检测说明图", trigger: "blur" }
// ],
}
const rules = {
barCode: [
{ required: true, message: "请输入条形码", trigger: "submit" },
{ validator: checkBarcode, trigger: "submit" }
],
goodsName: [
{ required: true, message: "请输入商品名称", trigger: "submit" },
{ validator: checkProjectStr, trigger: "submit" }
],
goodsHeaderImages: [
{ required: true, message: "请上传商品头图", trigger: "blur" }
],
goodsType:[
{ required: true, message: "请选择商品类型", trigger: "change" }
],
optPrice: [
{ required: true, message: "请输入零售价", trigger: "blur" },
],
// introduce: [
// { required: true, message: "请输入圈子介绍", trigger: "blur" },
// {
// min: 2,
// max: 40,
// message: "输入长度为2-40的内容,可包含中英文、数字及特殊符号",
// trigger: "blur"
// },
// { validator: checkProjectStr, trigger: "blur" }
// ],
}
export const originRules1 = rules1;
export const originRules2 = rules2;
export const originRules = rules;
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册