|
|
@@ -179,7 +179,6 @@
|
|
|
|
|
|
<el-table height="500" border v-loading="loading" :data="storeProductList"
|
|
|
@selection-change="handleSelectionChange">
|
|
|
- <el-table-column type="selection" width="55" align="center"/>
|
|
|
<el-table-column label="ID" align="center" prop="productId"/>
|
|
|
<el-table-column label="商品图片" align="center" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
@@ -248,28 +247,9 @@
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
|
|
|
- <el-dialog :title="title" :visible.sync="open1" width="580px" append-to-body>
|
|
|
- <el-form ref="form1" :model="form1" :rules="rules" label-width="80px">
|
|
|
- <el-form-item label="商品状态" prop="status">
|
|
|
- <el-radio-group v-model="form1.isShow">
|
|
|
- <el-radio :label="item.dictValue" v-for="item in isShowOptions">{{ item.dictLabel }}</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="商城展示" prop="isDisplay">
|
|
|
- <el-radio-group v-model="form1.isDisplay">
|
|
|
- <el-radio :label="item.dictValue" v-for="item in isDisplayOptions">{{ item.dictLabel }}</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitForm1">确 定</el-button>
|
|
|
- <el-button @click="cancel1">取 消</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
<!-- 添加或修改商品对话框 -->
|
|
|
<el-dialog :title="title" v-if="open" :fullscreen="isFullscreen" :visible.sync="open" width="1000px" append-to-body
|
|
|
- :show-close="false">
|
|
|
+ :show-close="false" :disabled="isViewMode" >
|
|
|
<template v-slot:title>
|
|
|
<div style="display: flex; justify-content: space-between; align-items: center;">
|
|
|
<span>{{ title }}</span>
|
|
|
@@ -353,8 +333,8 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<div v-if="form.isDrug === '1' ">
|
|
|
- <el-form-item label="头图展示" prop="drugImage">
|
|
|
- <Material v-model="drugImageArr" type="image" :num="1" :width="150" :height="150" :disabled="isViewMode"/>
|
|
|
+ <el-form-item label="头图展示" prop="drugImage" :disabled="isViewMode">
|
|
|
+ <Material v-model="drugImageArr" type="image" :num="1" :width="150" :height="150"/>
|
|
|
</el-form-item>
|
|
|
<div v-if="medicalMallConfig.isMedicalMall">
|
|
|
<el-row>
|
|
|
@@ -386,7 +366,7 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="规格" prop="prescribeSpec">
|
|
|
- <el-input v-model="form.prescribeSpec" placeholder="请输入规格"/>
|
|
|
+ <el-input v-model="form.prescribeSpec" placeholder="请输入规格" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -394,12 +374,12 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="上市许可持有人" prop="mah">
|
|
|
- <el-input v-model="form.mah" placeholder="请输入上市许可持有人"/>
|
|
|
+ <el-input v-model="form.mah" placeholder="请输入上市许可持有人" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="持有人地址" prop="mahAddress">
|
|
|
- <el-input v-model="form.mahAddress" placeholder="请输入上市许可持有人地址"/>
|
|
|
+ <el-input v-model="form.mahAddress" placeholder="请输入上市许可持有人地址" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -407,12 +387,12 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="生产企业" prop="manufacturer">
|
|
|
- <el-input v-model="form.manufacturer" placeholder="请输入生产企业"/>
|
|
|
+ <el-input v-model="form.manufacturer" placeholder="请输入生产企业" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="企业地址" prop="manufacturerAddress">
|
|
|
- <el-input v-model="form.manufacturerAddress" placeholder="请输入生产企业地址"/>
|
|
|
+ <el-input v-model="form.manufacturerAddress" placeholder="请输入生产企业地址" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -420,7 +400,7 @@
|
|
|
<el-collapse v-model="activeValue" accordion>
|
|
|
<el-collapse-item title="" name="1">
|
|
|
<el-form-item label="功能主治" prop="indications" v-if="!isMedicalDeviceCategory">
|
|
|
- <el-input v-model="form.indications" type="textarea" placeholder="请输入功能主治"/>
|
|
|
+ <el-input v-model="form.indications" type="textarea" placeholder="请输入功能主治" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="成分" prop="ingredient" v-if="!isMedicalDeviceCategory">
|
|
|
@@ -430,50 +410,51 @@
|
|
|
placeholder="请输入成分"
|
|
|
@blur="handleIngredientBlur"
|
|
|
@input="onIngredientInput"
|
|
|
+ :disabled="isViewMode"
|
|
|
/>
|
|
|
<div v-if="ingredientError" class="el-form-item__error">{{ ingredientError }}</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="用法用量" prop="dosage" v-if="!isMedicalDeviceCategory">
|
|
|
- <el-input v-model="form.dosage" type="textarea" placeholder="请输入用法用量"/>
|
|
|
+ <el-input v-model="form.dosage" type="textarea" placeholder="请输入用法用量" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="不良反应" prop="adverseReactions" v-if="!isMedicalDeviceCategory">
|
|
|
- <el-input v-model="form.adverseReactions" type="textarea" placeholder="请输入不良反应"/>
|
|
|
+ <el-input v-model="form.adverseReactions" type="textarea" placeholder="请输入不良反应" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="禁忌" prop="contraindications" v-if="!isMedicalDeviceCategory">
|
|
|
- <el-input v-model="form.contraindications" type="textarea" placeholder="请输入禁忌"/>
|
|
|
+ <el-input v-model="form.contraindications" type="textarea" placeholder="请输入禁忌" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="注意事项" prop="precautions" v-if="!isMedicalDeviceCategory">
|
|
|
- <el-input v-model="form.precautions" type="textarea" placeholder="请输入注意事项"/>
|
|
|
+ <el-input v-model="form.precautions" type="textarea" placeholder="请输入注意事项" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-collapse-item>
|
|
|
</el-collapse>
|
|
|
</div>
|
|
|
<el-form-item label="说明书" prop="instructionManual">
|
|
|
- <editor ref="instructionManualRef" @on-text-change="updateInstructionManualText"/>
|
|
|
+ <editor ref="instructionManualRef" @on-text-change="updateInstructionManualText" :readOnly="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="商品简介" prop="productInfo">
|
|
|
- <el-input v-model="form.productInfo" type="textarea" :rows="2" placeholder="请输入商品简介"/>
|
|
|
+ <el-input v-model="form.productInfo" type="textarea" :rows="2" placeholder="请输入商品简介" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-form-item label="商品图片" prop="image">
|
|
|
- <Material v-model="imageArr" type="image" :num="1" :width="150" :height="150"/>
|
|
|
+ <Material v-model="imageArr" type="image" :num="1" :width="150" :height="150" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="轮播图" prop="sliderImage">
|
|
|
- <Material v-model="photoArr" type="image" :num="10" :width="150" :height="150"/>
|
|
|
+ <Material v-model="photoArr" type="image" :num="10" :width="150" :height="150" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="商品规格:" props="specType">
|
|
|
- <el-radio-group v-model="form.specType">
|
|
|
+ <el-radio-group v-model="form.specType" :disabled="isViewMode">
|
|
|
<el-radio :label="0" class="radio">单规格</el-radio>
|
|
|
<el-radio :label="1">多规格</el-radio>
|
|
|
</el-radio-group>
|
|
|
@@ -506,7 +487,7 @@
|
|
|
:name="j" class="mr20" @close="handleRemove2(item.detail,indexn)">{{ j }}
|
|
|
</el-tag>
|
|
|
<el-input placeholder="请输入属性名称" v-model="item.detail.attrsVal"
|
|
|
- style="width: 200px">
|
|
|
+ style="width: 200px" :disabled="isViewMode">
|
|
|
<el-button slot="append" type="primary" @click="createAttr(item.detail.attrsVal,index)">添加
|
|
|
</el-button>
|
|
|
</el-input>
|
|
|
@@ -524,12 +505,12 @@
|
|
|
<el-col :span="24" v-if="showIput">
|
|
|
<el-col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
|
|
|
<el-form-item label="规格:">
|
|
|
- <el-input placeholder="请输入规格" v-model="formDynamic.attrsName"/>
|
|
|
+ <el-input placeholder="请输入规格" v-model="formDynamic.attrsName" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
|
|
|
<el-form-item label="规格值:">
|
|
|
- <el-input v-model="formDynamic.attrsVal" placeholder="请输入规格值"/>
|
|
|
+ <el-input v-model="formDynamic.attrsVal" placeholder="请输入规格值" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :xl="6" :lg="5" :md="10" :sm="24" :xs="24">
|
|
|
@@ -580,67 +561,67 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="price" label="售价" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.price"/>
|
|
|
+ <el-input type="text" v-model="scope.row.price" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="agentPrice" label="代理价" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.agentPrice"/>
|
|
|
+ <el-input type="text" v-model="scope.row.agentPrice" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="cost" label="成本价" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.cost"/>
|
|
|
+ <el-input type="text" v-model="scope.row.cost" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="otPrice" label="原价" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.otPrice"/>
|
|
|
+ <el-input type="text" v-model="scope.row.otPrice" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="stock" label="库存" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.stock" maxlength="7"/>
|
|
|
+ <el-input type="text" v-model="scope.row.stock" maxlength="7" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="barCode" label="商品条码" width="130px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.barCode"/>
|
|
|
+ <el-input type="text" v-model="scope.row.barCode" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="barCode" label="组合编号" width="130px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.groupBarCode"/>
|
|
|
+ <el-input type="text" v-model="scope.row.groupBarCode" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="weight" label="重量(KG)" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.weight"/>
|
|
|
+ <el-input type="text" v-model="scope.row.weight" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="volume" label="体积(m³)" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.volume"/>
|
|
|
+ <el-input type="text" v-model="scope.row.volume" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="volume" label="所需积分" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.integral"/>
|
|
|
+ <el-input type="text" v-model="scope.row.integral" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="volume" label="一级返佣" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.brokerage"/>
|
|
|
+ <el-input type="text" v-model="scope.row.brokerage" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="volume" label="二级返佣" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.brokerageTwo"/>
|
|
|
+ <el-input type="text" v-model="scope.row.brokerageTwo" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="volume" label="三级返佣" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input type="text" v-model="scope.row.brokerageThree"/>
|
|
|
+ <el-input type="text" v-model="scope.row.brokerageThree" :disabled="isViewMode"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
@@ -649,7 +630,7 @@
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="运费模板:" prop="tempId">
|
|
|
<div class="acea-row">
|
|
|
- <el-select v-model="form.tempId" class="mr20">
|
|
|
+ <el-select v-model="form.tempId" class="mr20" :disabled="isViewMode">
|
|
|
<el-option v-for="(item,index) in templateList" :value="item.id" :key="index" :label="item.name">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
@@ -658,12 +639,12 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-form-item label="商品详情" prop="description">
|
|
|
- <editor ref="myeditor" @on-text-change="updateText"/>
|
|
|
+ <editor ref="myeditor" @on-text-change="updateText" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="商品状态" prop="isShow">
|
|
|
- <el-radio-group v-model="form.isShow">
|
|
|
+ <el-radio-group v-model="form.isShow" :disabled="isViewMode">
|
|
|
<el-radio
|
|
|
:label="item.dictValue"
|
|
|
v-for="item in isShowOptions"
|
|
|
@@ -676,14 +657,14 @@
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="是否热卖" prop="isHot">
|
|
|
- <el-radio-group v-model="form.isHot">
|
|
|
+ <el-radio-group v-model="form.isHot" :disabled="isViewMode">
|
|
|
<el-radio :label="item.dictValue" v-for="item in isHotOptions">{{ item.dictLabel }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="猜你喜欢" prop="isGood">
|
|
|
- <el-radio-group v-model="form.isGood">
|
|
|
+ <el-radio-group v-model="form.isGood" :disabled="isViewMode">
|
|
|
<el-radio :label="item.dictValue" v-for="item in isGoodOptions">{{ item.dictLabel }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
@@ -692,21 +673,21 @@
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="精品推荐" prop="isBest">
|
|
|
- <el-radio-group v-model="form.isBest">
|
|
|
+ <el-radio-group v-model="form.isBest" :disabled="isViewMode">
|
|
|
<el-radio :label="item.dictValue" v-for="item in isBestOptions">{{ item.dictLabel }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="新品首发" prop="isNew">
|
|
|
- <el-radio-group v-model="form.isNew">
|
|
|
+ <el-radio-group v-model="form.isNew" :disabled="isViewMode">
|
|
|
<el-radio :label="item.dictValue" v-for="item in isNewOptions">{{ item.dictLabel }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="返还积分">
|
|
|
- <el-input-number v-model="form.giveIntegral" :min="0" placeholder="请输入积分"/>
|
|
|
+ <el-input-number v-model="form.giveIntegral" :min="0" placeholder="请输入积分" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -727,7 +708,7 @@
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="商城展示" prop="isDisplay">
|
|
|
- <el-radio-group v-model="form.isDisplay">
|
|
|
+ <el-radio-group v-model="form.isDisplay" :disabled="isViewMode">
|
|
|
<el-radio :label="item.dictValue" v-for="item in isDisplayOptions">{{ item.dictLabel }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
@@ -735,18 +716,18 @@
|
|
|
<el-col :span="8">
|
|
|
|
|
|
<el-form-item label="排序" prop="sort">
|
|
|
- <el-input-number :min="0" v-model="form.sort" placeholder="请输入排序"/>
|
|
|
+ <el-input-number :min="0" v-model="form.sort" placeholder="请输入排序" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="销量" prop="sales">
|
|
|
- <el-input-number :min="0" v-model="form.sales" placeholder="请输入销量"/>
|
|
|
+ <el-input-number :min="0" v-model="form.sales" placeholder="请输入销量" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
<el-form-item label="推广分类" prop="tuiCateId">
|
|
|
- <el-select style="width: 240px" v-model="form.tuiCateId" placeholder="请选择推广分类" clearable size="small">
|
|
|
+ <el-select style="width: 240px" v-model="form.tuiCateId" placeholder="请选择推广分类" clearable size="small" :disabled="isViewMode">
|
|
|
<el-option
|
|
|
v-for="item in productTuiCateOptions"
|
|
|
:key="item.dictValue"
|
|
|
@@ -759,7 +740,7 @@
|
|
|
<div v-if="form.isDrug === '1'">
|
|
|
<el-form-item v-if="form.isShow==='1'" label="审核说明" prop="reviewAudit">
|
|
|
<el-select style="width: 240px" v-model="form.reviewAudit" placeholder="请选择审核说明" clearable
|
|
|
- size="small">
|
|
|
+ size="small" :disabled="isViewMode">
|
|
|
<el-option
|
|
|
v-for="item in reviewAuditOptions"
|
|
|
:key="item.dictValue"
|
|
|
@@ -769,16 +750,16 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="非首营链接" prop="businessLink" v-if="form.reviewAudit === '1'">
|
|
|
- <el-input :min="0" v-model="form.businessLink" placeholder="请输入非首营链接"/>
|
|
|
+ <el-input :min="0" v-model="form.businessLink" placeholder="请输入非首营链接" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<!-- 生产企业营业执照 -->
|
|
|
- <el-form-item v-if="form.isShow === '1'" label="生产企业营业执照" prop="business">
|
|
|
- <Material v-model="businessArr" type="image" :num="1" :width="150" :height="150"/>
|
|
|
+ <el-form-item v-if="form.isShow === '1'" label="生产企业营业执照" prop="business" :disabled="isViewMode">
|
|
|
+ <Material v-model="businessArr" type="image" :num="1" :width="150" :height="150" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item v-if="form.isShow === '1' && businessArr.length > 0" label="生产企业营业执照是否长期有效" prop="isBusinessPermanent">
|
|
|
- <el-switch v-model="businessValue" active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
+ <el-switch v-model="businessValue" active-color="#13ce66" inactive-color="#ff4949" :disabled="isViewMode" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item v-if="form.isShow === '1' && businessArr.length > 0 && !businessValue" prop="businessExpire">
|
|
|
@@ -788,17 +769,19 @@
|
|
|
value-format="yyyy-MM-dd"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期">
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :disabled="isViewMode"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
|
|
|
<!--生产企业的生产许可证/备案凭证-->
|
|
|
<el-form-item v-if="form.isShow === '1'" label="生产企业的生产许可证/备案凭证" prop="license">
|
|
|
- <Material v-model="licenseArr" type="image" :num="1" :width="150" :height="150"/>
|
|
|
+ <Material v-model="licenseArr" type="image" :num="1" :width="150" :height="150" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item v-if="form.isShow === '1' && licenseArr.length > 0" label="生产企业的生产许可证/备案凭证是否长期有效" prop="isLicensePermanent">
|
|
|
- <el-switch v-model="licenseValue" active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
+ <el-switch v-model="licenseValue" active-color="#13ce66" inactive-color="#ff4949" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item v-if="form.isShow === '1' && licenseArr.length > 0 && !licenseValue" prop="licenseExpire">
|
|
|
@@ -808,7 +791,9 @@
|
|
|
value-format="yyyy-MM-dd"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期">
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :disabled="isViewMode"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -818,7 +803,7 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item v-if="form.isShow === '1' && licenseArr.length > 0" label="商品注册证/备案凭证是否长期有效" prop="isCertificatePermanent">
|
|
|
- <el-switch v-model="certificateValue" active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
+ <el-switch v-model="certificateValue" active-color="#13ce66" inactive-color="#ff4949" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item v-if="form.isShow === '1' && certificateArr.length > 0 && !certificateValue" prop="certificateExpire">
|
|
|
@@ -828,27 +813,34 @@
|
|
|
value-format="yyyy-MM-dd"
|
|
|
range-separator="至"
|
|
|
start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期">
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :disabled="isViewMode"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
|
|
|
<el-form-item label="国药准字" v-if="form.productType==2" prop="prescribeCode">
|
|
|
- <el-input v-model="form.prescribeCode" placeholder="请输入国药准字"/>
|
|
|
+ <el-input v-model="form.prescribeCode" placeholder="请输入国药准字" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="规格" v-if="form.productType==2" prop="prescribeSpec">
|
|
|
- <el-input v-model="form.prescribeSpec" placeholder="请输入规格"/>
|
|
|
+ <el-input v-model="form.prescribeSpec" placeholder="请输入规格" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="生产厂家" v-if="form.productType==2" prop="prescribeFactory">
|
|
|
- <el-input v-model="form.prescribeFactory" placeholder="请输入生产厂家"/>
|
|
|
+ <el-input v-model="form.prescribeFactory" placeholder="请输入生产厂家" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="处方名" v-if="form.productType==2" prop="prescribeName">
|
|
|
- <el-input v-model="form.prescribeName" placeholder="请输入处方名"/>
|
|
|
+ <el-input v-model="form.prescribeName" placeholder="请输入处方名" :disabled="isViewMode"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
- <el-button @click="cancel">取 消</el-button>
|
|
|
+ <div v-if="isViewMode">
|
|
|
+ <el-button @click="cancel">关 闭</el-button>
|
|
|
+ </div>
|
|
|
+ <div v-else>
|
|
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
|
|
@@ -893,38 +885,6 @@
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog
|
|
|
- :title=titleValue
|
|
|
- :visible.sync="authVisible"
|
|
|
- width="50%"
|
|
|
- :before-close="handleClose"
|
|
|
- center>
|
|
|
- <el-table :data="auditLogs" border>
|
|
|
- <el-table-column label="描述" align="center" prop="des" :show-overflow-tooltip="true" />
|
|
|
- <el-table-column label="操作人员" align="center" prop="operName" width="100" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />
|
|
|
- <el-table-column label="操作日期" align="center" prop="operTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180">
|
|
|
- <template slot-scope="scope">
|
|
|
- <span>{{ parseTime(scope.row.operTime) }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="审核理由" align="center" prop="reason" ></el-table-column>
|
|
|
- <el-table-column label="图片" align="center" prop="attachImage" width="100" >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-image
|
|
|
- style="width: 100px"
|
|
|
- :src="scope.row.attachImage"
|
|
|
- :preview-src-list="[scope.row.attachImage]"
|
|
|
- v-if="scope.row.attachImage">
|
|
|
- </el-image>
|
|
|
- <span v-else >无图片</span >
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="authVisible = false">关 闭</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
<!-- 免于经营备案的第二类医疗器械产品弹窗 -->
|
|
|
<el-dialog title="免于经营备案的第二类医疗器械产品" :visible.sync="exemptDeviceDialogVisible" width="80%" append-to-body :modal-append-to-body="false" z-index="9999" top="5vh" custom-class="exempt-device-dialog">
|
|
|
<el-form :model="exemptDeviceQueryParams" ref="exemptDeviceQueryForm" :inline="true" label-width="80px">
|
|
|
@@ -972,7 +932,6 @@ import {
|
|
|
genFormatAttr,
|
|
|
listStoreProduct,
|
|
|
getStoreProduct,
|
|
|
- delStoreProduct,
|
|
|
addOrEdit,copyProduct,selectForbiddenKeywords,getExemptSecondMedicalDeviceList
|
|
|
} from "@/api/store/platformProduct";
|
|
|
import {getAllStoreProductCategory} from "@/api/store/storeProductCategory";
|
|
|
@@ -1231,6 +1190,7 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ isViewMode: false,
|
|
|
ingredientError: '', // 成分禁止提示
|
|
|
productNameError: '', // 商品名称禁止提示
|
|
|
certificateValue:false,
|
|
|
@@ -1811,27 +1771,7 @@ export default {
|
|
|
this.$message.error("加载通知信息失败,请稍后重试");
|
|
|
});
|
|
|
},
|
|
|
- cancel1() {
|
|
|
- this.open1 = false;
|
|
|
- },
|
|
|
- submitForm1() {
|
|
|
- let param = {}
|
|
|
- param.productId = this.ids;
|
|
|
- param.goodsStatus = this.form1.isShow;
|
|
|
- param.goodsIsShow = this.form1.isDisplay;
|
|
|
- // param.companyIds = this.companyId+''
|
|
|
- batchModify(param).then(res => {
|
|
|
- if (res.code === 200) {
|
|
|
- this.$message.success("批量修改成功");
|
|
|
- this.getList();
|
|
|
- }
|
|
|
- }).finally(() => {
|
|
|
- this.open1 = false;
|
|
|
- this.form1.isShow = null;
|
|
|
- this.form1.isDisplay = null;
|
|
|
- this.form1.companyId = null;
|
|
|
- })
|
|
|
- },
|
|
|
+
|
|
|
handleFullScreen() {
|
|
|
this.isFullscreen = !this.isFullscreen;
|
|
|
},
|
|
|
@@ -2193,33 +2133,17 @@ export default {
|
|
|
this.single = selection.length !== 1
|
|
|
this.multiple = !selection.length
|
|
|
},
|
|
|
- /** 新增按钮操作 */
|
|
|
- handleAdd() {
|
|
|
- this.reset();
|
|
|
- this.clearExpireErrors(); // 清空过期错误提示
|
|
|
- this.isFormInitialized = true; // 新增时直接设置为已初始化
|
|
|
- this.open = true;
|
|
|
- this.title = "添加商品";
|
|
|
- setTimeout(() => {
|
|
|
- this.$refs.myeditor.setText("");
|
|
|
- this.$refs.instructionManualRef.setText("");
|
|
|
- }, 500);
|
|
|
- },
|
|
|
+
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
this.reset();
|
|
|
- if (this.ids.length > 1) {
|
|
|
- this.title = "商品详情";
|
|
|
- this.open1 = true;
|
|
|
- return;
|
|
|
- }
|
|
|
var that = this;
|
|
|
this.clearExpireErrors(); // 清空过期错误提示
|
|
|
const productId = row.productId || this.ids
|
|
|
getStoreProduct(productId).then(response => {
|
|
|
this.open = true;
|
|
|
- this.isViewMode = false; // 编辑模式
|
|
|
- this.title = "修改商品";
|
|
|
+ this.isViewMode = true; // 编辑模式
|
|
|
+ this.title = "商品详情";
|
|
|
this.form = response.data;
|
|
|
this.form.isShow = response.data.isShow.toString();
|
|
|
this.form.isHot = response.data.isHot.toString();
|
|
|
@@ -2267,23 +2191,9 @@ export default {
|
|
|
this.form.isDrug = response.data.isDrug === 0 ? "0" :
|
|
|
(response.data.isDrug ? response.data.isDrug.toString() : "1");
|
|
|
|
|
|
- if (this.form.isBusinessPermanent == 1) {
|
|
|
- this.businessValue = true
|
|
|
- } else {
|
|
|
- this.businessValue = false
|
|
|
- }
|
|
|
-
|
|
|
- if (this.form.isLicensePermanent == 1) {
|
|
|
- this.licenseValue = true
|
|
|
- } else {
|
|
|
- this.licenseValue = false
|
|
|
- }
|
|
|
-
|
|
|
- if (this.form.isCertificatePermanent == 1) {
|
|
|
- this.certificateValue = true
|
|
|
- } else {
|
|
|
- this.certificateValue = false
|
|
|
- }
|
|
|
+ this.businessValue = this.form.isBusinessPermanent == 1;
|
|
|
+ this.licenseValue = this.form.isLicensePermanent == 1;
|
|
|
+ this.certificateValue = this.form.isCertificatePermanent == 1;
|
|
|
|
|
|
const expireFieldMap = [
|
|
|
{ expireKey: 'businessExpire', startKey: 'businessStart', endKey: 'businessEnd' },
|
|
|
@@ -2480,50 +2390,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- /** 删除按钮操作 */
|
|
|
- handleDelete(row) {
|
|
|
- const productIds = row.productId || this.ids;
|
|
|
- this.$confirm('是否确认删除商品编号为"' + productIds + '"的数据项?', "警告", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning"
|
|
|
- }).then(function() {
|
|
|
- return delStoreProduct(productIds);
|
|
|
- }).then(() => {
|
|
|
- this.getList();
|
|
|
- this.msgSuccess("删除成功");
|
|
|
- }).catch(function() {
|
|
|
- });
|
|
|
- },
|
|
|
- /** 导出按钮操作 */
|
|
|
- handleExport() {
|
|
|
- const queryParams = this.queryParams;
|
|
|
- this.$confirm('是否确认导出所有商品数据项?', "警告", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning"
|
|
|
- }).then(function() {
|
|
|
- return exportStoreProduct(queryParams);
|
|
|
- }).then(response => {
|
|
|
- this.download(response.msg);
|
|
|
- }).catch(function() {
|
|
|
- });
|
|
|
- },
|
|
|
- showOperLog(row) {
|
|
|
- getAuthInfo(row.productId).then(response => {
|
|
|
- this.auditLogs = response.auditLog;
|
|
|
- this.titleValue = "商品:" + "《" + row.productName + "》" + "审核记录";
|
|
|
- this.authVisible = true;
|
|
|
- })
|
|
|
- },
|
|
|
- handleClose(done) {
|
|
|
- this.$confirm('确认关闭?')
|
|
|
- .then(_ => {
|
|
|
- done();
|
|
|
- })
|
|
|
- .catch(_ => {
|
|
|
- });
|
|
|
- },
|
|
|
+
|
|
|
/**
|
|
|
* 复制商品
|
|
|
* **/
|
|
|
@@ -2618,28 +2485,6 @@ export default {
|
|
|
{ required: true, message: "注意事项不能为空", trigger: "blur" }
|
|
|
]);
|
|
|
},
|
|
|
- // 组件销毁前清理定时器
|
|
|
- beforeDestroy() {
|
|
|
- if (this.categoryOrStoreChangeTimer) {
|
|
|
- clearTimeout(this.categoryOrStoreChangeTimer);
|
|
|
- }
|
|
|
- },
|
|
|
- //打开溯源码页面
|
|
|
- openVerify(row) {
|
|
|
- if (row) {
|
|
|
- this.currentProductId = row.productId;
|
|
|
- } else if (this.ids.length > 0) {
|
|
|
- this.currentProductId = this.ids[0];
|
|
|
- if (this.ids.length > 1) {
|
|
|
- this.$message.warning('溯源码管理仅支持单个商品操作,已默认选择第一个商品');
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.$message.error('请先选择需要管理溯源码的商品');
|
|
|
- return;
|
|
|
- }
|
|
|
- this.titleVisible = this.titleVisible + '《' + row.productName + '》';
|
|
|
- this.verifyDialogVisible = true;
|
|
|
- },
|
|
|
/**
|
|
|
* 关闭溯源码弹窗
|
|
|
*/
|
|
|
@@ -2659,9 +2504,6 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
-.exempt-device-dialog {
|
|
|
- z-index: 9999 !important;
|
|
|
-}
|
|
|
|
|
|
.exempt-device-dialog .el-dialog {
|
|
|
z-index: 9999 !important;
|
|
|
@@ -2670,4 +2512,4 @@ export default {
|
|
|
.exempt-device-dialog .el-dialog__wrapper {
|
|
|
z-index: 9999 !important;
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|