提交 205ccecf 编写于 作者: 张平's avatar 张平

Merge branch 'dev-check-serve-20201103' into 'release'

Dev check serve 20201103 新建商品 增加检测服务类型

Dev check serve 20201103  新建商品 增加检测服务类型

See merge request !232
...@@ -310,6 +310,9 @@ export default [{ ...@@ -310,6 +310,9 @@ export default [{
{ {
path: '/create-good', path: '/create-good',
component: createGood, component: createGood,
meta: {
keepAlive: false //页面不需要缓存
},
}, },
{ {
path: '/order-detail', path: '/order-detail',
......
...@@ -56,7 +56,7 @@ service.interceptors.request.use(config => { ...@@ -56,7 +56,7 @@ service.interceptors.request.use(config => {
// console.log('环境变量>>>> ', process.env.BUILD_ENV); // console.log('环境变量>>>> ', process.env.BUILD_ENV);
// config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6'; // config.headers['token'] = 'BFD804F3A3194FBBBE113962222839F6';
// config.headers['token'] = 'F8209898391C40A0B8DBC1ED9E157291'; // config.headers['token'] = 'F8209898391C40A0B8DBC1ED9E157291';
config.headers['token'] = 'AAAA3AA4233E45CCBE5CABD476C9D6F8'; config.headers['token'] = '00AB2FF7626D4F5FB627399EDF23F5DC';
}else{ }else{
config.headers['token'] = localStorage.getItem('storageToken') config.headers['token'] = localStorage.getItem('storageToken')
} }
......
...@@ -54,8 +54,8 @@ service.interceptors.request.use(config => { ...@@ -54,8 +54,8 @@ service.interceptors.request.use(config => {
} }
if( process.env.BUILD_ENV == "development" ){ // 本地开发环境qgit if( process.env.BUILD_ENV == "development" ){ // 本地开发环境qgit
// console.log('环境变量>>>> ', process.env.BUILD_ENV); // console.log('环境变量>>>> ', process.env.BUILD_ENV);
config.headers['token'] = 'C5172D7D7825463CA46752A894236AC2'; // config.headers['token'] = '00AB2FF7626D4F5FB627399EDF23F5DC';
// config.headers['token'] = localStorage.getItem('storageToken') config.headers['token'] = localStorage.getItem('storageToken')
}else{ }else{
config.headers['token'] = localStorage.getItem('storageToken') config.headers['token'] = localStorage.getItem('storageToken')
} }
......
...@@ -13,6 +13,14 @@ export const getGoodsList = (params) => { ...@@ -13,6 +13,14 @@ export const getGoodsList = (params) => {
description: '商品列表查询', description: '商品列表查询',
}) })
}; };
export const getGoodDetails = (goodsId) => {
return fetch({
headers,
url: getBaseUrl(`store/goods/medical/service/detail/${goodsId}/-1`),
method: 'get',
description: '商品详情查询',
})
}
export const uploadExcel = data => { export const uploadExcel = data => {
// return utils.checkAuth(()=>{ // return utils.checkAuth(()=>{
return fetch({ return fetch({
...@@ -43,6 +51,15 @@ export const updateGoods = (params) => { ...@@ -43,6 +51,15 @@ export const updateGoods = (params) => {
description: '创建/更新商品', description: '创建/更新商品',
}) })
}; };
export const updateGoodsV2 = (params) => {
return fetch({
headers,
url: getBaseUrl(`store/goods/medical/service/upsert`),
method: 'post',
data: params,
description: '创建/更新商品',
})
};
///dosage/all ///dosage/all
export const dosageAll = (parm) => { export const dosageAll = (parm) => {
return fetch({ return fetch({
...@@ -75,3 +92,14 @@ export const updateStock = (parm) => { ...@@ -75,3 +92,14 @@ export const updateStock = (parm) => {
description: '增加/减少库存', description: '增加/减少库存',
}) })
}; };
// http://dev-sc.yunqueyi.com/store/getHospitalInfoByStoreId?storeId=85
// GET header:token
export const getHospitalInfoByStoreId = (storeId) => {
return fetch({
headers,
url: getBaseUrl(`store/getHospitalInfoByStoreId?storeId=${storeId}`),
method: 'get',
description: '',
})
};
\ No newline at end of file
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
<el-input <el-input
type="textarea" type="textarea"
rows="4" rows="4"
size="small" size="small"
v-model="formData.goodsDescription" v-model="formData.goodsDescription"
placeholder="请输入商品介绍" placeholder="请输入商品介绍"
...@@ -83,10 +82,11 @@ ...@@ -83,10 +82,11 @@
v-model="formData.goodsType" v-model="formData.goodsType"
placeholder="请选择商品类型" placeholder="请选择商品类型"
size="small" size="small"
:disabled="isEdit"
@change="getGoodsTypes(formData.goodsType,2)"> @change="getGoodsTypes(formData.goodsType,2)">
<el-option <el-option
v-for="(item,index) in oneLever" v-for="(item,index) in oneLever"
:key="index" :key="item.categoryName+'-'+index"
:label="item.categoryName" :label="item.categoryName"
:value="item.id" :value="item.id"
></el-option> ></el-option>
...@@ -94,17 +94,26 @@ ...@@ -94,17 +94,26 @@
</el-form-item> </el-form-item>
<!-- <p class="upload-message" v-if="uploadImgMessage1">请上传商品头图</p> --> <!-- <p class="upload-message" v-if="uploadImgMessage1">请上传商品头图</p> -->
</div> </div>
</el-form>
<div class="basic-item-icon" v-if="isMedic"> <el-form
ref="formData1"
: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> <div class="part-tit">药品信息</div>
<el-form-item label="条形码" prop="barCode"> <el-form-item label="条形码" prop="barCode">
<el-col :span="18"> <el-col :span="18">
<el-input <el-input
size="small" size="small"
v-model="formData.barCode" v-model="formData1.barCode"
placeholder="请输入条形码" placeholder="请输入条形码"
></el-input> ></el-input>
<span class="fast-opt" @click="fastInput">快速录入</span> <span class="fast-opt" @click="fastInput(1)">快速录入</span>
<span class="word-num">(点击可快速录入下面的药品信息)</span> <span class="word-num">(点击可快速录入下面的药品信息)</span>
</el-col> </el-col>
</el-form-item> </el-form-item>
...@@ -112,7 +121,7 @@ ...@@ -112,7 +121,7 @@
<el-col :span="18"> <el-col :span="18">
<el-input <el-input
size="small" size="small"
v-model="formData.approvalNumber" v-model="formData1.approvalNumber"
placeholder="请输入批准文号" placeholder="请输入批准文号"
style="width:50%;" style="width:50%;"
></el-input> ></el-input>
...@@ -123,7 +132,7 @@ ...@@ -123,7 +132,7 @@
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.medicCommonName" v-model="formData1.medicCommonName"
placeholder="请输入药品通用名称" placeholder="请输入药品通用名称"
style="width:70%;" style="width:70%;"
maxlength="60" maxlength="60"
...@@ -137,7 +146,7 @@ ...@@ -137,7 +146,7 @@
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.medicGoodsName" v-model="formData1.medicGoodsName"
placeholder="请输入药品商品名称" placeholder="请输入药品商品名称"
maxlength="60" maxlength="60"
...@@ -151,7 +160,7 @@ ...@@ -151,7 +160,7 @@
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.size" v-model="formData1.size"
placeholder="请输入药品规格" placeholder="请输入药品规格"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
...@@ -162,13 +171,13 @@ ...@@ -162,13 +171,13 @@
<div class="inline"> <div class="inline">
<el-form-item label="是否是处方药" prop="otc1"> <el-form-item label="是否是处方药" prop="otc1">
<el-col :span="24"> <el-col :span="24">
<el-radio size="mini" v-model="formData.otc1" label="1">处方药</el-radio> <el-radio size="mini" v-model="formData1.otc1" label="1">处方药</el-radio>
<el-radio v-model="formData.otc1" label="0">非处方药</el-radio> <el-radio v-model="formData1.otc1" label="0">非处方药</el-radio>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="剂型" prop="dosageId"> <el-form-item label="剂型" prop="dosageId">
<el-select <el-select
v-model="formData.dosageId" v-model="formData1.dosageId"
placeholder="请选择药品剂型" placeholder="请选择药品剂型"
size="small" size="small"
clearable> clearable>
...@@ -185,7 +194,7 @@ ...@@ -185,7 +194,7 @@
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.usage" v-model="formData1.usage"
placeholder="请输入用法用量" placeholder="请输入用法用量"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
...@@ -196,10 +205,10 @@ ...@@ -196,10 +205,10 @@
<el-form-item label="药品类型" prop="categoryIdLevel2"> <el-form-item label="药品类型" prop="categoryIdLevel2">
<el-select <el-select
v-model="formData.categoryIdLevel2" v-model="formData1.categoryIdLevel2"
placeholder="请选择药品类型" placeholder="请选择药品类型"
size="small" size="small"
@change="getLever(formData.categoryIdLevel2,3)" @change="getLever(formData1.categoryIdLevel2,3)"
clearable clearable
> >
<el-option <el-option
...@@ -213,10 +222,10 @@ ...@@ -213,10 +222,10 @@
<div class="inline"> <div class="inline">
<el-form-item label="一级类目" prop="categoryIdLevel3" > <el-form-item label="一级类目" prop="categoryIdLevel3" >
<el-select <el-select
v-model="formData.categoryIdLevel3" v-model="formData1.categoryIdLevel3"
placeholder="请选择一级类目" placeholder="请选择一级类目"
size="small" size="small"
@change="getLever(formData.categoryIdLevel3,4)" @change="getLever(formData1.categoryIdLevel3,4)"
> >
<el-option <el-option
v-for="(item,index) in threeLever" v-for="(item,index) in threeLever"
...@@ -228,10 +237,10 @@ ...@@ -228,10 +237,10 @@
</el-form-item> </el-form-item>
<el-form-item label="二级类目" prop="categoryIdLevel4" > <el-form-item label="二级类目" prop="categoryIdLevel4" >
<el-select <el-select
v-model="formData.categoryIdLevel4" v-model="formData1.categoryIdLevel4"
placeholder="请选择二级类目" placeholder="请选择二级类目"
size="small" size="small"
@change="getLever(formData.categoryIdLevel4,5)" @change="getLever(formData1.categoryIdLevel4,5)"
> >
<el-option <el-option
v-for="(item,index) in fourLever" v-for="(item,index) in fourLever"
...@@ -243,7 +252,7 @@ ...@@ -243,7 +252,7 @@
</el-form-item> </el-form-item>
<el-form-item label="三级级类目" prop="categoryIdLevel5"> <el-form-item label="三级级类目" prop="categoryIdLevel5">
<el-select <el-select
v-model="formData.categoryIdLevel5" v-model="formData1.categoryIdLevel5"
placeholder="请选择三级类目" placeholder="请选择三级类目"
size="small" size="small"
> >
...@@ -260,7 +269,7 @@ ...@@ -260,7 +269,7 @@
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.manufacturer" v-model="formData1.manufacturer"
placeholder="请输入生产厂家" placeholder="请输入生产厂家"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
...@@ -272,7 +281,7 @@ ...@@ -272,7 +281,7 @@
<el-form-item label="适用科室" prop="department"> <el-form-item label="适用科室" prop="department">
<el-input <el-input
size="small" size="small"
v-model="formData.department" v-model="formData1.department"
placeholder="请输入适用科室" placeholder="请输入适用科室"
></el-input> ></el-input>
...@@ -294,7 +303,7 @@ ...@@ -294,7 +303,7 @@
<el-col :span="24"> <el-col :span="24">
<el-input <el-input
size="small" size="small"
v-model="formData.treatDisease" v-model="formData1.treatDisease"
placeholder="请输入治疗疾病" placeholder="请输入治疗疾病"
></el-input> ></el-input>
...@@ -308,7 +317,7 @@ ...@@ -308,7 +317,7 @@
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.expiredTime" v-model="formData1.expiredTime"
placeholder="请输入有效期" placeholder="请输入有效期"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
...@@ -355,16 +364,288 @@ ...@@ -355,16 +364,288 @@
<p class="upload-message" v-if="!isSpecification_url">请上传药品说明书</p> <p class="upload-message" v-if="!isSpecification_url">请上传药品说明书</p>
</el-form-item> </el-form-item>
</div> </div>
</el-form>
<!-- =========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start========================================================= -->
<el-form
ref="formData2"
: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="formData2.barCode"
placeholder="请输入条形码"
></el-input>
<!-- <span class="fast-opt" @click="fastInput(2)">快速录入</span>
<span class="word-num">(点击可快速录入下面的药品信息)</span> -->
</el-col>
</el-form-item>
<el-form-item label="检测登记表" prop="checkPackageId">
<el-select
v-model="formData.checkPackageId"
placeholder="请选择"
size="small"
>
<el-option label="其他" value="''">其他</el-option>
</el-select>
</el-form-item>
<el-form-item label="检测名称" prop="checkName">
<el-col :span="13">
<el-input
size="small"
v-model="formData2.checkName"
placeholder="请输入检测名称"
show-word-limit
maxlength="60"
></el-input>
</el-col>
</el-form-item>
<el-form-item label="医疗机构名称" prop="hospitalName">
<el-col :span="13">
<el-input
size="small"
v-model="formData2.hospitalName"
placeholder="请输入医疗机构名称"
show-word-limit
></el-input>
</el-col>
</el-form-item>
<el-form-item label="医疗机构类型" prop="hospitalType">
<el-select
v-model="formData2.hospitalType"
placeholder="请选择"
size="small"
>
<el-option
v-for="(item,index) in hospitalTypeList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="检测项目" prop="checkItem">
<el-col :span="13">
<el-input
type="textarea"
rows="4"
size="small"
v-model="formData2.checkItem"
placeholder="请输入检测项目"
maxlength="400"
show-word-limit
></el-input>
</el-col>
</el-form-item>
<el-form-item label="检测指标" prop="checkStandard">
<el-col :span="13">
<el-input
type="textarea"
rows="4"
size="small"
v-model="formData2.checkStandard"
placeholder="请输入检测指标"
maxlength="400"
show-word-limit
></el-input>
</el-col>
</el-form-item>
<el-form-item label="使用人数" prop="useCount" class="required-label">
<el-col :span="20">
<div class="stock-com">
<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="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="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="formData2.checkType"
placeholder="请选择"
size="small"
>
<el-option
v-for="(item,index) in checkTypeList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="适用人群" prop="suitableArr">
<el-select
v-model="formData2.suitableArr"
:multiple="true"
placeholder="请选择"
size="small"
>
<el-option
v-for="(item,index) in suitableList"
:key="item+'_'+index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="附加服务" prop="accessorialService">
<el-col :span="13">
<el-input
type="textarea"
rows="4"
size="small"
v-model="formData2.accessorialService"
placeholder="请输入附加服务"
maxlength="400"
show-word-limit
></el-input>
</el-col>
</el-form-item>
<el-form-item label="商品使用日期" prop="endTime" class="required-label">
<el-date-picker
v-model="formData2.endTime"
size="small"
type="datetime"
placeholder="请选择商品使用日期"
value-format="yyyy-MM-dd HH:mm:ss.SSS"
format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<!-- <el-form-item label="商品使用日期" prop="endTime">
<el-col :span="13">
<el-input
size="small"
v-model="formData2.endTime"
placeholder="请输入商品使用日期"
style="width:70%;"
></el-input>
<span class="word-num"></span>
</el-col>
</el-form-item> -->
<el-form-item label="检测说明" >
<el-upload
:file-list="goodsCheckList"
class="bg-uploader"
:show-file-list="isShowFileList"
action="#"
:before-upload="beforeUploadPic2"
>
<div class="file-pics" :key="index" v-for="(item,index) in goodsCheckList">
<img :src="item.url" @mouseover.stop="headIndex=index" class="bg-img"/>
<div
class="img-delete"
v-if="headIndex==index"
@click.stop="deleteImg(item,goodsCheckList)"
@mouseout.stop="headIndex=-1"
>
<i class="el-icon-delete"></i>
</div>
</div>
<img class="bg-img" src="../../assets/image/small.png" v-if="goodsCheckList.length <10"/>
<div class="limit-text">
<p>尺寸:686 * 高度不变</p>
<p>支持jpeg, png格式</p>
</div>
</el-upload>
<p class="upload-message" v-if="!isgoodsImages">请上传检测说明图</p>
</el-form-item>
</div>
</el-form>
<!-- =========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start=========================================================
=========================================================调试新增检测服务 start========================================================= -->
<el-form
ref="formData"
:model="formData"
:rules="rules"
label-width="150px"
label-suffix=":"
class="basic-form"
>
<div class="basic-item-icon"> <div class="basic-item-icon">
<div class="part-tit">销售信息</div> <div class="part-tit">销售信息</div>
<div class="inline"> <div class="inline">
<el-form-item label="零售价" prop="optPrice"> <el-form-item label="零售价" prop="optPrice">
<el-col :span="20"> <el-col :span="20">
<el-input <el-input
size="small" @input="$forceUpdate();"
v-model="formData.optPrice" size="small"
placeholder="请输入零售价" v-model="formData.optPrice"
placeholder="请输入零售价"
></el-input> ></el-input>
<!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> --> <!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> -->
...@@ -443,33 +724,20 @@ ...@@ -443,33 +724,20 @@
let vm = null; let vm = null;
import { openLoading, closeLoading } from "../../utils/utils"; import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util"; import { doUpload, getFilePath } from "../../utils/qiniu-util";
import { updateGoods ,updateStock,dosageAll,getDeparts,getGoodsList} from '@/utils/goods'; import { updateGoods ,updateStock,dosageAll,getDeparts,getGoodsList, getGoodDetails, updateGoodsV2, getHospitalInfoByStoreId } from '@/utils/goods';
import Cropper from '@/components/common/cropper.vue' import Cropper from '@/components/common/cropper.vue'
import { mapGetters } from "vuex";
import { originRules1, originRules2, originRules } from './rules';
import { originForm1, originForm2, originForm } from './forms';
export default { export default {
components: { components: {
BreadCrumb, BreadCrumb,
Cropper Cropper
}, },
data(){ data(){
let checkProjectStr = (rule, value, callback) => {
if (value.indexOf("\\") != -1) {
//存在
callback(new Error("请勿输入字符“ \\ "));
} else if (value.indexOf(".") != -1) {
callback(new Error("请勿输入字符“ . "));
} else {
callback();
}
};
const checkBarcode = (rule, value, cb) => {
const valedBarcode = new RegExp("[\\u4E00-\\u9FFF]+","g");
if(value && valedBarcode.test(value)) cb(new Error('条形码不能输入中文'));
cb();
}
return{ return{
isEdit: false,
stock:{ stock:{
title:'减少库存', title:'减少库存',
type:1, type:1,
...@@ -478,6 +746,7 @@ ...@@ -478,6 +746,7 @@
}, },
doseAll:[], doseAll:[],
fileGoodsList:[], fileGoodsList:[],
goodsCheckList: [],
fileIntrList:[], fileIntrList:[],
intrIndex:-1, intrIndex:-1,
isShowFileList:false, isShowFileList:false,
...@@ -516,44 +785,26 @@ ...@@ -516,44 +785,26 @@
label: '其他', label: '其他',
value: '3', value: '3',
}], }],
formData: { checkPackageList: [], // 检测登记表
medicationId: 0, hospitalTypeList: [{label:'村卫生室',value:1},{label:'乡镇卫生院/中心',value:2}], // 医疗机构类型
optPrice:0, checkTypeList: [{label:'常规检测',value:1}], // 检测类型
id:'', suitableList: [{label:'儿童',value:'1'},{label:'青年',value:'2'},{label:'中年',value:'4'},{label:'老年',value:'8'}], // 适用人群
categoryId:'',
categoryIdLevel2: '', // 不同类型服务的表单通用字段
categoryIdLevel3: '', // 不同类型服务的表单通用字段
categoryIdLevel4: '', // 不同类型服务的表单通用字段
categoryIdLevel5: '', formData: JSON.parse(JSON.stringify(originForm)),
goodsName:'', formData1: JSON.parse(JSON.stringify(originForm1)),
goodsDescription:'', formData2: JSON.parse(JSON.stringify(originForm2)),
goodsImages:[], rules: {},
goodsType:'', rules1: {},
medicCommonName:'', rules2: {},
medicGoodsName:'', goodsId: 0, // 新增时传0,更新时必需>0
size:'', goodsType: '',
dosageId:null, storeId: '',
usage:'', // 不同类型服务的表单通用字段
otc:false, // 不同类型服务的表单通用字段
otc1:'1', // 不同类型服务的表单通用字段
approvalNumber:'',
manufacturer:'',
department:'',
expiredTime:'',
specification_url:'',
treatDisease:'',
barCode:'',
discountPrice:'',
stock:0,
goodsStock:0,
specificationImages:[],
goodsId:'',
costPrice:'',
decrStock:'',//减少库存
incrStock:'',//增加库存
storeId: '',
externalGoodsCode: '',
},
showCropper: false, showCropper: false,
currentOption: { currentOption: {
offset_x: 120, offset_x: 120,
...@@ -572,93 +823,30 @@ ...@@ -572,93 +823,30 @@
slide2: { slide2: {
oriUrl: '', // 原图 oriUrl: '', // 原图
}, },
rules: {
goodsName: [
{ required: true, message: "请输入商品名称", trigger: "blur" },
{
// min: 2,
// max: 14,
//message: "输入长度为2-14的内容,可包含中英文、数字及特殊符号",
trigger: "blur"
},
{ validator: checkProjectStr, trigger: "blur" }
],
introduce: [
{ required: true, message: "请输入圈子介绍", trigger: "blur" },
{
min: 2,
max: 40,
message: "输入长度为2-40的内容,可包含中英文、数字及特殊符号",
trigger: "blur"
},
{ validator: checkProjectStr, trigger: "blur" }
],
goodsImages: [
{ required: true, message: "请上传商品头图", trigger: "blur" }
],
goodsType:[
{ required: true, message: "请选择商品类型", trigger: "change" }
],
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" }
],
otc:[
{ required: true, message: "请选择是否是处方", trigger: "blur" }
],
specification_url:[
{ required: true, message: "请上传药品说明书", trigger: "blur" }
],
barCode: [
{ required: false, message: "请输入条形码", trigger: "blur" },
{ validator: checkBarcode, trigger: "blur" }
],
optPrice: [
{ required: true, message: "请输入零售价", trigger: "blur" },
],
dynamicFlag: [
{ required: true, message: "请选择内容发布权", trigger: "blur" },
]
},
imgMouseOver1: false, imgMouseOver1: false,
uploadImgMessage1: false,//未上传图片,校验提示语 uploadImgMessage1: false,//未上传图片,校验提示语
isMedic:false, isMedic:false, // 商品类型选择【药品】时!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
isCheckServe: false, // 商品类型选择【检测服务】时!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
} }
}, },
computed: {
...mapGetters(["goodsInfo"])
},
created() { created() {
vm = this; vm = this;
const { id, storeId, goodsType } = this.$route.query;
this.goodsType = goodsType;
this.storeId = storeId;
// this.formData = originForm;
// this.formData1 = originForm1;
// this.formData2 = originForm2;
this.rules = originRules;
this.rules1 = originRules1;
this.rules2 = originRules2;
this.rules2.barCode = originRules.barCode;
const {id, storeId} = this.$route.query
this.jumPathThird = '/goods-manage?storeId='+storeId this.jumPathThird = '/goods-manage?storeId='+storeId
//this.jumPathThird = '/create-good?id=add&storeId=46' //this.jumPathThird = '/create-good?id=add&storeId=46'
this.title = id == 'add' ? '新增商品' : '编辑商品' this.title = id == 'add' ? '新增商品' : '编辑商品';
this.curmbThird = this.title this.isEdit = id != 'add';
this.curmbThird = this.title;
this.formData.storeId = Number(storeId) || ''; this.formData.storeId = Number(storeId) || '';
this.getLever(0,1) this.getLever(0,1)
dosageAll().then((res)=>{ dosageAll().then((res)=>{
...@@ -669,25 +857,58 @@ ...@@ -669,25 +857,58 @@
this.allDeparts = res.data this.allDeparts = res.data
}) })
if(id != 'add'){ if(id != 'add'){
// let goods = Object.assign(this.goodsInfo,{}) this.getDetailByEdit(id, goodsType);
// this.formData = {...goods}
// console.log(goods)
this.getDetailByEdit(id)
} }
}, },
methods: { methods: {
//eidt状态 //eidt状态
getDetailByEdit(id){ async getDetailByEdit(id, goodsType){
let parm = { this.goodsId = id ;
goodsIdList:[id], if(goodsType == 337){
goodsName :'', this.isCheckServe = true;
goodsType :'', const res = await getGoodDetails(id);
pageNo:1, console.log(`========================>`, res);
pageSize: 10, if(res.code != '000000'){
} return this.$message({
getGoodsList(parm).then((res)=>{ message: res.message,
type: 'error'
});
};
closeLoading(this);
if(res.data == null){
return this.$message({
type: 'error'
});
};
const { goodsInfo, medicalService } = res.data;
this.formData = {...this.formData, ...goodsInfo};
this.formData2 = medicalService;
this.formData = { ...this.formData, ...this.formData2 };
this.$set(this.formData2, 'suitableArr', this.formData.suitable.split(','));
this.$set(this.formData, 'suitableArr', this.formData.suitable.split(','));
this.formData.optPrice = this.formData.costPrice/100;
this.formData.stock = this.formData.goodsStock;
this.fileGoodsList = this.getImges(goodsInfo.goodsHeaderImages,1);
this.goodsCheckList = this.getImges(medicalService.goodsCheckImages, goodsType);
this.rules = {
...this.rules,
...originRules
};
}else{
this.isMedic = true;
const res = await getGoodsList({
goodsIdList:[id],
goodsName :'',
goodsType :'',
pageNo:1,
pageSize: 10,
});
if(res.code != '000000'){ if(res.code != '000000'){
return this.$message({ return this.$message({
message: res.message, message: res.message,
...@@ -697,38 +918,40 @@ ...@@ -697,38 +918,40 @@
closeLoading(this); closeLoading(this);
if(res.data == null){ if(res.data == null){
return this.$message({ return this.$message({
message: '数据加载失败',
type: 'error' type: 'error'
}); });
} }
const {goodsList} = res.data const {goodsList} = res.data;
this.formData = Object.assign(this.formData,{...goodsList[0]}) this.formData1 = goodsList[0];
this.formData = goodsList[0];
this.formData.optPrice = this.formData.costPrice/100; this.formData.optPrice = this.formData.costPrice/100;
this.fileGoodsList = this.getImges(goodsList[0].goodsImgList,1) this.fileGoodsList = this.getImges(goodsList[0].goodsImgList,1);
this.fileIntrList = this.getImges(goodsList[0].medicImgList,2) this.fileIntrList = this.getImges(goodsList[0].medicImgList,2);
this.isMedic = this.formData.goodsType == 5 ? true : false this.formData.stock = this.formData.goodsStock;
this.formData.stock = this.formData.goodsStock
console.log(this.formData.otc)
this.formData.otc1 = this.formData.otc ? '1' : '0' this.formData.otc1 = this.formData.otc ? '1' : '0'
if(this.isMedic){ if(this.isMedic){
this.getLever(5,2,1) this.getLever(5,2,1)
} }
const {categoryIdLevel2,categoryIdLevel3,categoryIdLevel4,categoryIdLevel5} = this.formData const {categoryIdLevel2,categoryIdLevel3,categoryIdLevel4,categoryIdLevel5} = this.formData
if(categoryIdLevel2 != -1){ if(categoryIdLevel2 != -1){
this.getLever(categoryIdLevel2,3,1) this.getLever(categoryIdLevel2,3,1)
} }
if(categoryIdLevel3 != -1){ if(categoryIdLevel3 != -1){
this.getLever(categoryIdLevel3,4,1) this.getLever(categoryIdLevel3,4,1)
} }
if(categoryIdLevel4 != -1){ if(categoryIdLevel4 != -1){
this.getLever(categoryIdLevel4,5,1) this.getLever(categoryIdLevel4,5,1)
} }
console.log(this.formData)
//this.totalRows = res.data.totalCount //this.totalRows = res.data.totalCount
})
},
this.rules = {
...this.rules,
...originRules
};
}
console.log(this.formData);
},
getImges(d,type){ getImges(d,type){
let a = []; let a = [];
if(d.length > 0){ if(d.length > 0){
...@@ -736,17 +959,18 @@ ...@@ -736,17 +959,18 @@
a.push({ a.push({
url:type==1 ?d[i].goodsImgUrl :d[i].imageUrl, url:type==1 ?d[i].goodsImgUrl :d[i].imageUrl,
imageUrl: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, id: d[i].id,
imageSort: d[i].imageSort, imageSort: d[i].imageSort,
imgSort: d[i].imgSort,
imageType: type == 1 ? d[i].imgType : d[i].imageType, imageType: type == 1 ? d[i].imgType : d[i].imageType,
}) })
} }
} }
return a; return a;
}, },
//快速录入 //快速录入
fastInput(){ fastInput(type){
///medications/query/{approvalnumber} ///medications/query/{approvalnumber}
if(this.formData.barCode == ''){ if(this.formData.barCode == ''){
this.$refs.formData.validateField("barCode") this.$refs.formData.validateField("barCode")
...@@ -817,13 +1041,23 @@ ...@@ -817,13 +1041,23 @@
}); });
}, },
getGoodsTypes(id,type){ getGoodsTypes(goodsType,type){
if(id == 5 ){ this.goodsType = goodsType;
if(goodsType == 5){
this.isMedic = true; this.isMedic = true;
this.getLever(id,type) this.isCheckServe = false;
this.getLever(goodsType,type);
} else if(goodsType == 337){
this.isMedic = false;
this.isCheckServe = true;
getHospitalInfoByStoreId(this.storeId).then(({code,message,data})=>{
this.formData2.hospitalName = data.hospital;
})
}else{ }else{
this.isMedic = false; this.isMedic = false;
} this.isCheckServe = false;
};
console.log(this.formData);
}, },
defaultArr(){ defaultArr(){
let a = [ let a = [
...@@ -834,7 +1068,6 @@ ...@@ -834,7 +1068,6 @@
] ]
return a return a
}, },
//获取分类 //获取分类
getLever(id,type,parm){ getLever(id,type,parm){
...@@ -849,7 +1082,7 @@ ...@@ -849,7 +1082,7 @@
//this.twoLever = res.data || this.defaultArr() //this.twoLever = res.data || this.defaultArr()
res.data = res.data.length > 0 ? res.data.concat([{categoryName: "其他",id:-1}]) : this.defaultArr() res.data = res.data.length > 0 ? res.data.concat([{categoryName: "其他",id:-1}]) : this.defaultArr()
this.twoLever = res.data this.twoLever = res.data
console.log(this.twoLever) // console.log(this.twoLever)
}else if(type == 3){ }else if(type == 3){
// res.data = res.data.push({categoryName: "其他",id:-1}) // res.data = res.data.push({categoryName: "其他",id:-1})
res.data = res.data.length > 0 ? res.data.concat([{categoryName: "其他",id:-1}]) : this.defaultArr() res.data = res.data.length > 0 ? res.data.concat([{categoryName: "其他",id:-1}]) : this.defaultArr()
...@@ -877,7 +1110,6 @@ ...@@ -877,7 +1110,6 @@
} }
}); });
}, },
updateStock(){ updateStock(){
let r = /^\+?[1-9][0-9]*$/; let r = /^\+?[1-9][0-9]*$/;
//造假 接口来了删掉 //造假 接口来了删掉
...@@ -912,8 +1144,6 @@ ...@@ -912,8 +1144,6 @@
//this.formData.goodsStock = this.formData.stock //this.formData.goodsStock = this.formData.stock
this.stockDio = false this.stockDio = false
}, },
changeStock(type){ changeStock(type){
if(this.formData.stock == 0 && type == 1){ if(this.formData.stock == 0 && type == 1){
return; return;
...@@ -929,16 +1159,16 @@ ...@@ -929,16 +1159,16 @@
} }
this.stockDio = true this.stockDio = true
}, },
complete() { complete() {
let formName = "formData"; let formNameList = ['formData', 'formData1', 'formData2'];
// let goodsImgList = this.fileGoodsList.map((item, index) => { // let formName = "formData";
// item.imageSort = index+1; if(this.goodsType == 337 ){
// }) formNameList = ['formData', 'formData2'];
// console.log(this.fileGoodsList) this.formData = { ...this.formData, ...this.formData2 };
// let specificationImgList = this.fileIntrList.map((item, index) => { }else{
// item.imageSort = index+1; formNameList = ['formData', 'formData1'];
// }) this.formData = { ...this.formData, ...this.formData1 };
}
for(let i=0;i<this.fileGoodsList.length;i++){ for(let i=0;i<this.fileGoodsList.length;i++){
this.fileGoodsList[i].imageSort = i+1 this.fileGoodsList[i].imageSort = i+1
} }
...@@ -946,52 +1176,73 @@ ...@@ -946,52 +1176,73 @@
this.fileIntrList[j].imageSort = j+1 this.fileIntrList[j].imageSort = j+1
} }
this.formData.goodsImages = this.fileGoodsList;
this.formData.specificationImages = this.fileIntrList;
this.isgoodsImages = this.formData.goodsImages.length == 0 ? false :true;
// this.isSpecification_url = this.formData.specificationImages.length == 0 ? false : true
this.formData.categoryId = this.formData.goodsType this.formData.categoryId = this.formData.goodsType
this.formData.otc = this.formData.otc1 == 1 ? true : false this.formData.otc = this.formData.otc1 == 1 ? true : false
this.isgoodStock = this.formData.stock > 0 ? true : false this.isgoodStock = this.formData.stock > 0 ? true : false
console.log(this.isgoodStock) this.formData.goodsId = this.goodsId;
// 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.isMedic){
if(!this.isgoodsImages){ if(!this.isgoodsImages){
return; return;
} }
// if(!this.isSpecification_url){
// return;
// }
} }
// 如果是【检测服务】类型的商品
if(this.isCheckServe){
this.formData.goodsCheckImages = this.goodsCheckList;
const { suitableArr } = this.formData2;
this.formData2.suitable = this.formData.suitable = suitableArr.join(',');
this.formData.medicalServiceId = this.formData.medicationId;
}
if(!this.isgoodStock){ if(!this.isgoodStock){
return; return;
} }
this.$refs[formName].validate((valid) => { let isTrue = false;
if (valid) { formNameList.map(item=>{
//alert('submit!'); this.$refs[item].validate((valid) => {
this.updateGoodsInfo(); isTrue = valid;
} else { if (!valid) return false;
console.log('error submit!!'); });
return false;
}
}); });
},
if(!isTrue){
return false;
}else{
this.formData.costPrice = this.formData.optPrice*100
this.formData.hasChanged = true;
this.updateGoodsInfo();
}
// this.$refs[formName].validate((valid) => {
// if (valid) {
// //alert('submit!');
// this.formData.costPrice = this.formData.optPrice*100
// this.formData.hasChanged = true;
// this.updateGoodsInfo();
// } else {
// console.log('error submit!!');
// return false;
// }
// });
},
//更新商品 //更新商品
updateGoodsInfo(){ updateGoodsInfo(){
//this.formData.incrStock = 1000
this.formData.costPrice = this.formData.optPrice*100
this.formData.hasChanged = true;
console.log('提交值',this.formData); console.log('提交值',this.formData);
updateGoods(this.formData).then((res)=>{ const submieFn = this.isCheckServe ? updateGoodsV2 : updateGoods;
submieFn(this.formData).then((res)=>{
if (res.code !== '000000') { if (res.code !== '000000') {
// return this.$message.error(res.message); return this.$message({
return this.$message({ message: res.message,
message: res.message, type: 'error'
type: 'error' });
});
} }
vm.$message.success("操作成功"); vm.$message.success("操作成功");
this.$router.push({ this.$router.push({
path: '/goods-manage', path: '/goods-manage',
...@@ -1012,12 +1263,7 @@ ...@@ -1012,12 +1263,7 @@
const isLt200k = file.size / 1024 < 200; const isLt200k = file.size / 1024 < 200;
if (picTypes.indexOf(file.type) == -1) { if (picTypes.indexOf(file.type) == -1) {
return this.$message.error("请上传jpeg或png格式的图片"); return this.$message.error("请上传jpeg或png格式的图片");
} }
// if (!isLt200k) {
// return vm.$message.error("图片大小请控制在200kb以内");
// }
let _img = new FileReader(); let _img = new FileReader();
_img.readAsDataURL(file); _img.readAsDataURL(file);
...@@ -1028,39 +1274,50 @@ ...@@ -1028,39 +1274,50 @@
image.onload = function () { image.onload = function () {
let _this = this; let _this = this;
console.log(_this.width,_this.height) console.log(_this.width,_this.height)
// if (_this.width != fileLimit.width || _this.height != fileLimit.height) {
//if (_this.width == 750 && _this.height == 420) {
openLoading(vm); openLoading(vm);
doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) { doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) {
closeLoading(vm); closeLoading(vm);
console.log('上传成功后路径', path); console.log('上传成功后路径', path);
// if (fileLimit.show == "uploadImgMessage1") {
// vm.uploadImgMessage1 = false;
// } else if (fileLimit.show == "uploadImgMessage2") {
// vm.uploadImgMessage2 = false;
// }
let len = vm.fileGoodsList.length; let len = vm.fileGoodsList.length;
vm.fileGoodsList.push({url:path.fullPath,imageUrl:path.fullPath,imageName:'',imageSort: len+1,imageType: 2,id: null,}) vm.fileGoodsList.push({ url: path.fullPath, goodsImgUrl: path.fullPath,imageUrl:path.fullPath, imgSort: len+1,imageSort: len+1, goodsId: vm.formData.goodsId });
//vm.formData.goodsImages = path.fullPath // vm.fileGoodsList.push({url:path.fullPath,goodsImgUrl: path.fullPath,imageUrl:path.fullPath,imageName:'',imageSort: len+1,imageType: 2,id: null,})
vm.$message.success("上传成功"); vm.$message.success("上传成功");
}); });
// } else {
// return vm.$message.error("图片尺寸不符合规范,请根据规范上传图片");
// }
}; };
}; };
// openLoading(vm); },
// doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) { // 上传检测说明图
// closeLoading(vm); beforeUploadPic2(file) {
// console.log('上传成功后路径', path); if(this.fileGoodsList.length > 10){
// vm.formData.goodsImages = path.fullPath return ;
}
// vm.$message.success("上传成功"); let vm = this;
// }); let picTypes = ['image/jpeg','image/png']
const isLt200k = file.size / 1024 < 200;
if (picTypes.indexOf(file.type) == -1) {
return this.$message.error("请上传jpeg或png格式的图片");
}
let _img = new FileReader();
_img.readAsDataURL(file);
_img.onload = function (theFile) {
let image = new Image()
image.src = theFile.target.result
vm.slide2.oriUrl = theFile.target.result;
image.onload = function () {
let _this = this;
console.log(_this.width,_this.height)
openLoading(vm);
doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) {
closeLoading(vm);
console.log('上传成功后路径', path);
let len = vm.goodsCheckList.length;
vm.goodsCheckList.push({ url: path.fullPath, imageUrl: path.fullPath, imageSort: len+1, id: vm.formData.goodsId });
vm.$message.success("上传成功");
});
};
};
}, },
//上传药品说明 //上传药品说明
beforeUploadPic1(file,type) { beforeUploadPic1(file,type) {
......
const form1 = {
categoryIdLevel2: '',
categoryIdLevel3: '',
categoryIdLevel4: '',
categoryIdLevel5: '',
medicCommonName:'',
medicGoodsName:'',
size:'',
dosageId:null,
usage:'',
otc1:'1',
approvalNumber:'',
manufacturer:'',
department:'',
expiredTime:'',
specification_url:'',
treatDisease:'',
barCode: '',
}
const form2 = {
checkPackageId: '', // 检测登记表,暂无,先隐藏!!!!!!!!!!!
checkName: '',
hospitalName: '',
hospitalType: '',
hospitalId: 0,
medicalServiceId: 0, // 新增时传0,更新时必需>0
goodsCheckImages: [],
checkItem: '',
checkStandard: '',
useCount: 1,
checkType: '',
suitable: '',
suitableArr: '',
accessorialService: '',
endTime: '',
barCode: '',
// medicalServiceId: ''
}
const form = {
// medicationId: 0,
// categoryId:'',
// otc:false,
// discountPrice:'',
// specificationImages:[],
// goodsId: 0, // 新增时传0,更新时必需>0
id: 0,
goodsName:'',
goodsDescription:'',
goodsHeaderImages:[],
goodsType:'',
barCode: '',
costPrice:0,
decrStock:0,//减少库存
incrStock:'',//增加库存
storeId: '',
optPrice:'',
goodsStock:0,
stock: 0,
externalGoodsCode: ''
};
export const originForm1 = form1;
export const originForm2 = form2;
export const originForm = form;
\ No newline at end of file
...@@ -178,21 +178,24 @@ ...@@ -178,21 +178,24 @@
import { getGoodsList,batchOnOff,uploadExcel} from '@/utils/goods'; import { getGoodsList,batchOnOff,uploadExcel} from '@/utils/goods';
import { getBaseUrl } from '@/utils/index' import { getBaseUrl } from '@/utils/index'
var typeList = [{ var typeList = [{
categoryName: "短信额度", categoryName: "短信额度",
id: 1, id: 1,
}, { }, {
categoryName: "学习卡", categoryName: "学习卡",
id: 2, id: 2,
}, { }, {
categoryName: "职称考卡", categoryName: "职称考卡",
id: 3, id: 3,
},{ },{
categoryName: "医疗器械", categoryName: "医疗器械",
id: 4, id: 4,
},{ },{
categoryName: "药品", categoryName: "药品",
id: 5, id: 5,
}] },{
categoryName: "检测服务",
id: 337,
}];
export default { export default {
components: { components: {
BreadCrumb BreadCrumb
...@@ -413,13 +416,14 @@ ...@@ -413,13 +416,14 @@
} }
}, },
edit(row){ edit(row){
const { goodsType } = row;
let url = '' let url = ''
if(row == 'add'){ if(row == 'add'){
url = `/create-good?id=add&storeId=${this.searchForm.storeId}` url = `/create-good?id=add&storeId=${this.searchForm.storeId}`
}else{ }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.$store.dispatch('goodsManage/changeGoodsInfo', {...row});
this.$router.push({ this.$router.push({
path: url path: url
}) })
......
...@@ -213,7 +213,7 @@ ...@@ -213,7 +213,7 @@
@close="showTuiDialog = false" @close="showTuiDialog = false"
width="385px" width="385px"
> >
<el-form ref="tuiForm" :model="tuiForm" label-width="120px"> <el-form ref="tuiForm" :rules="rules" :model="tuiForm" label-width="120px">
<el-form-item label="退款退货方式:"> <el-form-item label="退款退货方式:">
<el-select v-model="tuiForm.type" placeholder="请选择退货方式"> <el-select v-model="tuiForm.type" placeholder="请选择退货方式">
<el-option <el-option
...@@ -228,6 +228,15 @@ ...@@ -228,6 +228,15 @@
<el-form-item label="退款金额" prop="name"> <el-form-item label="退款金额" prop="name">
<el-input v-model="tuiForm.money" :disabled="true"></el-input> <el-input v-model="tuiForm.money" :disabled="true"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="退款对象" prop="userName">
<el-select v-model="userType" placeholder="请选择退款对象">
<el-option
v-for="item in userTypes"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="confirmTui">完成</el-button> <el-button size="small" type="primary" @click="confirmTui">完成</el-button>
...@@ -286,6 +295,9 @@ ...@@ -286,6 +295,9 @@
orderNum: [ orderNum: [
{ required: true, message: '请输入快递单号', trigger: "blur"}, { required: true, message: '请输入快递单号', trigger: "blur"},
], ],
userName: [
{ required: true, message: '请选择退款对象', trigger: "blur"},
],
}, },
showTuiDialog: false, showTuiDialog: false,
tuiForm: { tuiForm: {
...@@ -309,10 +321,22 @@ ...@@ -309,10 +321,22 @@
value: 2, value: 2,
disabled: true disabled: true
} }
],
userType: "", // 1.开单医生, 2.支付用户
userTypes: [
{
label: '开单医生',
value: 1,
},
{
label: '支付用户',
value: 2,
},
] ]
} }
}, },
created() { created() {
console.log("order created() : enter");
this.searchForm.storeId = this.$route.query.storeId || 0, this.searchForm.storeId = this.$route.query.storeId || 0,
this.searchList(); this.searchList();
}, },
...@@ -481,7 +505,11 @@ ...@@ -481,7 +505,11 @@
this.showTuiDialog = true; this.showTuiDialog = true;
}, },
confirmTui() { confirmTui() {
refundApply({ orderId: this.tuiForm.order.id }).then(res => { if (this.userType == null || this.userType == "") {
this.$message.error("请选择退款对象");
return;
}
refundApply({ orderId: this.tuiForm.order.id, userType: this.userType }).then(res => {
if (res.code == '000000') { if (res.code == '000000') {
this.$message.success('操作成功'); this.$message.success('操作成功');
this.showTuiDialog = false; this.showTuiDialog = false;
......
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 = {
barCode: [
{ required: true, message: "请输入条形码", trigger: "submit" },
{ validator: checkBarcode, trigger: "submit" }
],
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" }],
suitableArr: [{ 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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册