Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
提交
议题看板
打开侧边栏
jingqi.liu
pica.cloud.web-education-admin
提交
7204aeb1
提交
7204aeb1
编写于
2月 05, 2024
作者:
zhongyao.qiao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat 内部隐藏新增药品
上级
03538aad
变更
1
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
1884 行增加
和
1398 行删除
+1884
-1398
create-good-new.vue
src/views/goods/create-good-new.vue
+1884
-1398
未找到文件。
src/views/goods/create-good-new.vue
浏览文件 @
7204aeb1
<
template
>
<div
class=
"create-shop-wrapper-new"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
:curmbThird=
"curmbThird"
:jumPathThird=
"jumPathThird"
></bread-crumb>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
:curmbThird=
"curmbThird"
:jumPathThird=
"jumPathThird"
></bread-crumb>
<div
class=
"create-shop-content screenSet"
id=
"screenSet"
>
<el-row
class=
"step-content"
>
<el-col
:span=
"20"
>
<p
class=
"title"
>
{{
title
}}
</p>
<p
class=
"title"
>
{{
title
}}
</p>
</el-col>
<el-col
:span=
"4"
style=
"text-align: right"
>
<el-button
size=
"small"
@
click=
"cancelComplete"
>
取消
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"complete"
>
保存
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"complete"
>
保存
</el-button
>
</el-col>
</el-row>
<el-form
...
...
@@ -19,7 +26,6 @@
label-suffix=
":"
class=
"basic-form"
>
<div
class=
"basic-item-icon"
>
<div
class=
"part-tit"
>
基本信息
</div>
<el-form-item
label=
"商品分类"
class=
"goods-category"
>
...
...
@@ -33,9 +39,18 @@
v-model=
"goodsCategoryIdList"
@
change=
"searchCategoryChange"
/>
<div
v-if=
"isgoodsCategory"
:style=
"
{color: '#f56c6c',fontSize: '12px'}">请选择商品分类
</div>
<div
v-if=
"isgoodsCategory"
:style=
"
{ color: '#f56c6c', fontSize: '12px' }"
>
请选择商品分类
</div>
</el-form-item>
<el-form-item
label=
"项目-合同名称"
prop=
"cooperationProjectId"
class=
"project-req"
>
<el-form-item
label=
"项目-合同名称"
prop=
"cooperationProjectId"
class=
"project-req"
>
<el-select
v-model=
"formData3.cooperationProjectId"
placeholder=
"请选择"
...
...
@@ -44,10 +59,11 @@
@
change=
"getContract"
@
clear=
"projectClear"
clearable
filterable
>
filterable
>
<el-option
v-for=
"(item,
index) in cooperationProjectList"
:key=
"item.projectName+'-'+
index"
v-for=
"(item,
index) in cooperationProjectList"
:key=
"item.projectName + '-' +
index"
:label=
"item.projectName"
:value=
"item.cooperationProjectId"
></el-option>
...
...
@@ -61,33 +77,84 @@
@
change=
"contractChange"
>
<el-option
v-for=
"(item,
index) in contractList"
:key=
"item.contractName+'-'+
index"
v-for=
"(item,
index) in contractList"
:key=
"item.contractName + '-' +
index"
:label=
"item.contractName"
:value=
"item.contractId"
></el-option>
</el-select>
<div
class=
"project-tip"
>
未找到项目名称请联系产品经理添加
</div>
<div
v-if=
"isProjectId"
:style=
"
{color: '#f56c6c',fontSize: '12px'}">请关联项目名称
</div>
<div
v-if=
"isProjectId"
:style=
"
{ color: '#f56c6c', fontSize: '12px' }"
>
请关联项目名称
</div>
</el-form-item>
<el-form-item
label=
"选择基础药品"
prop=
"choiceGoods"
class=
"choice-goods"
>
<el-form-item
label=
"选择基础药品"
prop=
"choiceGoods"
class=
"choice-goods"
>
<el-col
:span=
"16"
>
<el-button
type=
"primary"
@
click=
"addMed"
:disabled=
"isShowGoods"
>
+添加药品
</el-button>
<el-button
@
click=
"addNewGoods"
:disabled=
"isShowGoods"
class=
"add-btn"
>
新增药品
</el-button>
<div
v-if=
"isShowGoodsMsg && !isShowGoods"
:style=
"
{color: '#f56c6c',fontSize: '12px'}">请选择基础药品
</div>
<el-button
type=
"primary"
@
click=
"addMed"
:disabled=
"isShowGoods"
>
+添加药品
</el-button
>
<el-button
v-if=
"idType === 2"
@
click=
"addNewGoods"
:disabled=
"isShowGoods"
class=
"add-btn"
>
新增药品
</el-button
>
<div
v-if=
"isShowGoodsMsg && !isShowGoods"
:style=
"
{ color: '#f56c6c', fontSize: '12px' }"
>
请选择基础药品
</div>
</el-col>
<el-table
v-if=
"isShowGoods"
:data=
"choiceMedData"
ref=
"singlTable"
class=
"show-goods-table"
>
<el-table-column
property=
"productName"
label=
"产品名称/通用名称"
width=
"180"
></el-table-column>
<el-table-column
property=
"barCode"
label=
"条形码"
width=
"180"
></el-table-column>
<el-table-column
property=
"goodsName"
label=
"商品名称"
width=
"180"
></el-table-column>
<el-table-column
property=
"approvalNumber"
label=
"批准文号"
width=
"180"
></el-table-column>
<el-table-column
property=
"specifications"
label=
"规格"
width=
"180"
></el-table-column>
<el-table-column
property=
"productionCompany"
label=
"生产企业"
width=
"180"
></el-table-column>
<el-table-column
label=
"操作"
width=
"180"
><span
class=
"del-goods"
@
click=
"delGoods"
>
删除
</span></el-table-column>
class=
"show-goods-table"
>
<el-table-column
property=
"productName"
label=
"产品名称/通用名称"
width=
"180"
></el-table-column>
<el-table-column
property=
"barCode"
label=
"条形码"
width=
"180"
></el-table-column>
<el-table-column
property=
"goodsName"
label=
"商品名称"
width=
"180"
></el-table-column>
<el-table-column
property=
"approvalNumber"
label=
"批准文号"
width=
"180"
></el-table-column>
<el-table-column
property=
"specifications"
label=
"规格"
width=
"180"
></el-table-column>
<el-table-column
property=
"productionCompany"
label=
"生产企业"
width=
"180"
></el-table-column>
<el-table-column
label=
"操作"
width=
"180"
><span
class=
"del-goods"
@
click=
"delGoods"
>
删除
</span
></el-table-column
>
</el-table>
</el-form-item>
<el-form-item
label=
"商品名称"
prop=
"goodsName"
>
...
...
@@ -114,8 +181,12 @@
maxlength=
"40"
show-word-limit
></el-input>
<span
class=
"word-tip"
>
此文案可摘取药品说明书【功能主治】or【适应症】
</span>
<span
class=
"word-show"
@
click=
"shoImgDialog = true"
>
查看展示位置
</span>
<span
class=
"word-tip"
>
此文案可摘取药品说明书【功能主治】or【适应症】
</span
>
<span
class=
"word-show"
@
click=
"shoImgDialog = true"
>
查看展示位置
</span
>
</el-col>
</el-form-item>
<el-form-item
label=
"商品头图"
class=
"required-label"
>
...
...
@@ -129,7 +200,11 @@
:on-exceed=
"imgExceed"
:limit=
"6"
>
<img
class=
"bg-img"
src=
"../../assets/image/small.png"
v-if=
"fileGoodsList.length
<
6
"
/>
<img
class=
"bg-img"
src=
"../../assets/image/small.png"
v-if=
"fileGoodsList.length
<
6
"
/>
<div
class=
"limit-text"
v-if=
"fileGoodsList.length
<
6
"
>
<p>
建议尺寸:750*750
</p>
<p>
支持jpeg, png格式
</p>
...
...
@@ -140,22 +215,35 @@
</el-form-item>
<el-form-item
label=
""
class=
"required-label"
>
<div
class=
"bg-uploader"
>
<draggable
class=
"image-wrapper"
:animation=
"1000"
v-model=
"fileGoodsList"
:sort=
"true"
>
<draggable
class=
"image-wrapper"
:animation=
"1000"
v-model=
"fileGoodsList"
:sort=
"true"
>
<div
:key=
"item.uid"
v-for=
"(item, index) in fileGoodsList"
>
<div
class=
"img-box"
>
<div
class=
"file-pics"
v-if=
"fileGoodsList.length > 0"
>
<img
:src=
"item.url"
@
mouseover
.
stop=
"headIndex=index"
class=
"bg-img"
/>
<div
class=
"file-pics"
v-if=
"fileGoodsList.length > 0"
>
<img
:src=
"item.url"
@
mouseover
.
stop=
"headIndex = index"
class=
"bg-img"
/>
<div
class=
"img-delete"
v-if=
"headIndex==
index"
v-if=
"headIndex ==
index"
@
click
.
stop=
"deleteImg(item, fileGoodsList)"
@
mouseout
.
stop=
"headIndex=
-1"
@
mouseout
.
stop=
"headIndex =
-1"
>
<i
class=
"el-icon-delete"
></i>
</div>
</div>
<div
class=
"checkbox"
@
click
.
stop
>
<el-checkbox
:true-label=
"0"
:false-label=
"1"
v-model=
"fileGoodsList[index].miniProgramShow"
></el-checkbox>
<el-checkbox
:true-label=
"0"
:false-label=
"1"
v-model=
"fileGoodsList[index].miniProgramShow"
></el-checkbox>
</div>
</div>
</div>
...
...
@@ -174,22 +262,44 @@
action=
"#"
class=
"bg-uploader"
>
<video
id=
"introVideoLecture"
:src=
"videoModel.videoFullPath"
controls
preload
style=
"width: 100%;"
v-if=
"videoList.length == 1"
>
<video
id=
"introVideoLecture"
:src=
"videoModel.videoFullPath"
controls
preload
style=
"width: 100%"
v-if=
"videoList.length == 1"
>
视频
</video>
<img
class=
"bg-img"
src=
"../../assets/image/video.png"
v-if=
"videoList.length
<1
"
/>
<div
class=
"limit-text"
v-if=
"videoList.length
<1
"
>
<img
class=
"bg-img"
src=
"../../assets/image/video.png"
v-if=
"videoList.length
<
1
"
/>
<div
class=
"limit-text"
v-if=
"videoList.length
<
1
"
>
<p>
建议大小:20M以内
</p>
<p>
仅支持MP4格式
</p>
<P>
视频名称必须包含3个下划线:举例(YQ_01_02_03.mp4)
</P>
</div>
</el-upload>
<el-progress
:text-inside=
"true"
:stroke-width=
"16"
:percentage=
"uploadProgress"
status=
"success"
class=
"video-progress"
v-show=
"uploadProgress>0&&uploadProgress
<100
"
>
<el-progress
:text-inside=
"true"
:stroke-width=
"16"
:percentage=
"uploadProgress"
status=
"success"
class=
"video-progress"
v-show=
"uploadProgress > 0 && uploadProgress
<
100
"
>
</el-progress>
<el-button
class=
"dl-video"
icon=
"el-icon-delete"
circle
@
click=
"deleteVideo"
v-if=
"videoList.length == 1"
></el-button>
<el-button
class=
"dl-video"
icon=
"el-icon-delete"
circle
@
click=
"deleteVideo"
v-if=
"videoList.length == 1"
></el-button>
</el-form-item>
<el-form-item
label=
"商品详情图片(视频)"
class=
"label-detailimg"
>
...
...
@@ -199,36 +309,64 @@
:show-file-list=
"false"
:before-upload=
"beforeUploadPic1"
>
<img
class=
"bg-img"
src=
"../../assets/image/uploadImgOrVideo.png"
/>
<img
class=
"bg-img"
src=
"../../assets/image/uploadImgOrVideo.png"
/>
<div
class=
"limit-text"
>
<p>
视频:20M以内,仅支持MP4格式,视频名称必须包含3个下划线:举例(YQ_01_02_03.mp4)
</p>
<p>
视频:20M以内,仅支持MP4格式,视频名称必须包含3个下划线:举例(YQ_01_02_03.mp4)
</p>
<p>
图片:2M以内,支持jpeg, png格式
</p>
</div>
</el-upload>
<p
class=
"upload-message"
v-if=
"!isSpecification_url"
>
请上传商品详情图片
</p>
<p
class=
"upload-message"
v-if=
"!isSpecification_url"
>
请上传商品详情图片
</p>
<p
class=
"word-tip"
>
勾选的详情在云鹊健康小程序不可见
</p>
</el-form-item>
<el-form-item
label=
""
class=
"required-label"
>
<div
class=
"bg-uploader"
>
<draggable
class=
"image-wrapper"
:animation=
"1000"
v-model=
"fileIntrList"
:sort=
"true"
>
<draggable
class=
"image-wrapper"
:animation=
"1000"
v-model=
"fileIntrList"
:sort=
"true"
>
<div
:key=
"item.uid"
v-for=
"(item, index) in fileIntrList"
>
<div
class=
"img-box"
>
<div
class=
"file-pics"
v-if=
"item.url || item.imageUrl"
>
<img
v-if=
"item.imageType==4"
:src=
"item.url"
@
mouseover
.
stop=
"intrIndex=index"
class=
"bg-img"
/>
<video
v-if=
"item.imageType==5"
@
mouseover
.
stop=
"intrIndex=index"
:src=
"item.imageUrl"
controls
preload
style=
"width: 100%;height:100%; object-fit:fill"
>
<img
v-if=
"item.imageType == 4"
:src=
"item.url"
@
mouseover
.
stop=
"intrIndex = index"
class=
"bg-img"
/>
<video
v-if=
"item.imageType == 5"
@
mouseover
.
stop=
"intrIndex = index"
:src=
"item.imageUrl"
controls
preload
style=
"width: 100%; height: 100%; object-fit: fill"
>
视频
</video>
<div
class=
"img-delete"
v-if=
"intrIndex==
index"
v-if=
"intrIndex ==
index"
@
click
.
stop=
"deleteImg(item, fileIntrList)"
@
mouseout
.
stop=
"intrIndex=
-1"
@
mouseout
.
stop=
"intrIndex =
-1"
>
<i
class=
"el-icon-delete"
></i>
</div>
</div>
<div
class=
"checkbox"
@
click
.
stop
>
<el-checkbox
:true-label=
"0"
:false-label=
"1"
v-model=
"fileIntrList[index].miniProgramShow"
></el-checkbox>
<el-checkbox
:true-label=
"0"
:false-label=
"1"
v-model=
"fileIntrList[index].miniProgramShow"
></el-checkbox>
</div>
</div>
</div>
...
...
@@ -249,11 +387,12 @@
<div
class=
"basic-item-icon"
>
<div
class=
"part-tit"
>
销售信息
</div>
<div
class=
"inline"
>
<el-form-item
label=
"销售方式"
prop=
"saleType"
>
<el-radio-group
v-model=
"formData.saleType"
size=
"small"
>
<el-radio
:label=
"1"
>
零售
</el-radio>
<el-radio
:label=
"2"
:disabled=
"commissionFlag == 1"
>
批发
</el-radio>
<el-radio
:label=
"2"
:disabled=
"commissionFlag == 1"
>
批发
</el-radio
>
</el-radio-group>
</el-form-item>
</div>
...
...
@@ -261,28 +400,60 @@
<div
class=
"inline"
v-if=
"formData.saleType == 1"
>
<el-form-item
label=
"零售价"
prop=
"optPrice"
>
<el-col
:span=
"20"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.optPrice"
size=
"small"
:precision=
"2"
:min=
"0.00"
:max=
"99999.99"
></el-input-number>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.optPrice"
size=
"small"
:precision=
"2"
:min=
"0.0"
:max=
"99999.99"
></el-input-number>
</el-col>
</el-form-item>
</div>
<div
class=
"inline"
>
<el-form-item
label=
"成本价"
prop=
"realCostPrice"
>
<el-col
:span=
"20"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.realCostPrice"
size=
"small"
:precision=
"2"
:min=
"0.00"
:max=
"99999.99"
></el-input-number>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.realCostPrice"
size=
"small"
:precision=
"2"
:min=
"0.0"
:max=
"99999.99"
></el-input-number>
</el-col>
</el-form-item>
</div>
<div
class=
"inline"
v-if=
"formData.saleType == 2"
>
<el-form-item
label=
"批发价"
prop=
"optPrice"
>
<el-col
:span=
"20"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.optPrice"
size=
"small"
:precision=
"2"
:min=
"0"
:max=
"20000000.00"
></el-input-number>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.optPrice"
size=
"small"
:precision=
"2"
:min=
"0"
:max=
"20000000.0"
></el-input-number>
</el-col>
</el-form-item>
</div>
<div
class=
"inline"
v-if=
"formData.saleType == 1"
>
<el-form-item
label=
"绩效分值"
>
<el-col
:span=
"20"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.scorePerformance"
size=
"small"
:precision=
"2"
:min=
"0.00"
:max=
"999999.99"
></el-input-number>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.scorePerformance"
size=
"small"
:precision=
"2"
:min=
"0.0"
:max=
"999999.99"
></el-input-number>
</el-col>
</el-form-item>
</div>
...
...
@@ -290,43 +461,89 @@
<el-form-item
label=
"库存"
prop=
"stock"
class=
"required-label"
>
<el-col
:span=
"20"
>
<div
class=
"stock-com"
>
<span
class=
"sp sp-l"
@
click=
"changeStock(1)"
:class=
"
{'opac':formData.stock == 0}">
<i
class=
"el-icon-minus"
></i></span>
<span
class=
"sp sp-c"
>
{{
formData
.
stock
}}
</span>
<span
class=
"sp sp-r"
@
click=
"changeStock(2)"
><i
class=
"el-icon-plus"
></i></span>
<span
class=
"sp sp-l"
@
click=
"changeStock(1)"
:class=
"
{ opac: formData.stock == 0 }"
>
<i
class=
"el-icon-minus"
></i
></span>
<span
class=
"sp sp-c"
>
{{
formData
.
stock
}}
</span>
<span
class=
"sp sp-r"
@
click=
"changeStock(2)"
><i
class=
"el-icon-plus"
></i
></span>
</div>
<p
class=
"error-message"
v-if=
"!isgoodStock"
>
库存不能为0
</p>
</el-col>
</el-form-item>
</div>
<div
class=
"inline"
v-if=
"formData.saleType ==1"
>
<el-form-item
label=
"最小起购件数"
prop=
"leastCount"
class=
"required-label"
>
<div
class=
"inline"
v-if=
"formData.saleType == 1"
>
<el-form-item
label=
"最小起购件数"
prop=
"leastCount"
class=
"required-label"
>
<el-col
:span=
"20"
>
<div
class=
"stock-com"
style=
"width: 500px;display:flex"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.leastCount"
size=
"small"
:precision=
"0"
:min=
"0"
:max=
"9999"
></el-input-number>
<span
class=
"word-num"
style=
"margin-left: 10px;"
>
最高9999件哦
</span>
<div
class=
"stock-com"
style=
"width: 500px; display: flex"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.leastCount"
size=
"small"
:precision=
"0"
:min=
"0"
:max=
"9999"
></el-input-number>
<span
class=
"word-num"
style=
"margin-left: 10px"
>
最高9999件哦
</span
>
</div>
<p
class=
"error-message"
v-if=
"formData.leastCount
<
=
0
"
>
最小起购件数不能为0
</p>
<p
class=
"error-message"
v-if=
"formData.leastCount
<
=
0
"
>
最小起购件数不能为0
</p>
</el-col>
</el-form-item>
</div>
<div
class=
"inline"
v-if=
"formData.leastCount > 1 || formData.saleType ==2"
>
<div
class=
"inline"
v-if=
"formData.leastCount > 1 || formData.saleType == 2"
>
<el-form-item
label=
"递增方式"
>
<el-col
:span=
"24"
>
<el-radio
size=
"mini"
v-model=
"formData.incrType"
:label=
"2"
>
倍数递增
</el-radio>
<el-radio
v-model=
"formData.incrType"
:label=
"1"
>
1件递增
</el-radio>
<el-radio
size=
"mini"
v-model=
"formData.incrType"
:label=
"2"
>
倍数递增
</el-radio
>
<el-radio
v-model=
"formData.incrType"
:label=
"1"
>
1件递增
</el-radio
>
</el-col>
</el-form-item>
</div>
<div
class=
"inline"
v-if=
"formData.saleType == 1"
>
<el-form-item
label=
"单次购买上限"
prop=
"mostCount"
class=
"required-label"
>
<el-col
:span=
"20"
style=
"width: 300%;"
>
<div
class=
"stock-com"
style=
"width: 500px;display:flex"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.mostCount"
size=
"small"
:precision=
"0"
:min=
"-1"
:max=
"9999"
></el-input-number>
<span
class=
"word-num"
style=
"margin-left: 10px;"
>
数值为-1时,代表单次购买上限已无限制(最高9999件哦)
</span>
<el-form-item
label=
"单次购买上限"
prop=
"mostCount"
class=
"required-label"
>
<el-col
:span=
"20"
style=
"width: 300%"
>
<div
class=
"stock-com"
style=
"width: 500px; display: flex"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.mostCount"
size=
"small"
:precision=
"0"
:min=
"-1"
:max=
"9999"
></el-input-number>
<span
class=
"word-num"
style=
"margin-left: 10px"
>
数值为-1时,代表单次购买上限已无限制(最高9999件哦)
</span
>
</div>
<p
class=
"error-message"
v-if=
"formData.mostCount === 0"
>
单次购买上限不能为0
</p>
<p
class=
"error-message"
v-if=
"formData.mostCount === 0"
>
单次购买上限不能为0
</p>
</el-col>
</el-form-item>
</div>
...
...
@@ -344,90 +561,151 @@
<div
class=
"inline"
>
<el-form-item
label=
"阳性报销上限"
prop=
"reimburseMax"
>
<el-col
:span=
"20"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.reimburseMax"
size=
"small"
:precision=
"2"
:min=
"0.00"
:max=
"99999.99"
></el-input-number>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.reimburseMax"
size=
"small"
:precision=
"2"
:min=
"0.0"
:max=
"99999.99"
></el-input-number>
</el-col>
</el-form-item>
</div>
<div
class=
"inline"
v-if=
"formData.saleType == 2"
>
<el-form-item
label=
"最小起批"
prop=
"minWhole"
class=
"required-label"
>
<el-form-item
label=
"最小起批"
prop=
"minWhole"
class=
"required-label"
>
<el-col
:span=
"20"
>
<div
class=
"stock-com"
style=
"width: 500px;display:flex"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate();"
v-model=
"formData.minWhole"
size=
"small"
:precision=
"0"
:min=
"1"
></el-input-number>
<div
class=
"stock-com"
style=
"width: 500px; display: flex"
>
<el-input-number
class=
"stock-com"
@
input=
"$forceUpdate()"
v-model=
"formData.minWhole"
size=
"small"
:precision=
"0"
:min=
"1"
></el-input-number>
</div>
<p
class=
"error-message"
v-if=
"formData.minWhole
<
=
0
"
>
最小起批不能为0
</p>
<p
class=
"error-message"
v-if=
"formData.minWhole
<
=
0
"
>
最小起批不能为0
</p>
</el-col>
</el-form-item>
</div>
<el-form-item
label=
"是否支持售后"
prop=
"expressLimitFlag"
v-if=
"storeType
<
3
"
>
<el-radio-group
v-model=
"formData.expressLimitFlag"
:disabled=
"!hasRepoFlag"
@
change=
"radioChange"
>
<el-form-item
label=
"是否支持售后"
prop=
"expressLimitFlag"
v-if=
"storeType
<
3
"
>
<el-radio-group
v-model=
"formData.expressLimitFlag"
:disabled=
"!hasRepoFlag"
@
change=
"radioChange"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
</el-radio-group>
<p
class=
"backTip"
v-if=
"!hasRepoFlag"
@
click=
"goShopDeatil"
>
若需设置商品支持售后,需先至店铺页
<span
class=
"ad-back"
>
设置售后地址
</span></p>
<p
class=
"backTip"
v-if=
"!hasRepoFlag"
@
click=
"goShopDeatil"
>
若需设置商品支持售后,需先至店铺页
<span
class=
"ad-back"
>
设置售后地址
</span
>
</p>
</el-form-item>
</div>
<div
class=
"basic-item-icon"
v-if=
"formData.saleType == 1"
>
<div
class=
"part-tit"
>
限购条件
</div>
<div
v-for=
"(item, index) in buyLimitDtoList"
:key=
"index"
>
<div
v-for=
"(item, index) in buyLimitDtoList"
:key=
"index"
>
<el-form-item
label=
"限制条件"
>
<el-button
@
click=
"delLimit(index)"
type=
"text"
size=
"small"
>
删除
</el-button>
<el-button
@
click=
"delLimit(index)"
type=
"text"
size=
"small"
>
删除
</el-button
>
</el-form-item>
<el-form-item
label=
"限制对象"
>
<el-col
:span=
"10"
>
<el-radio-group
v-model=
"item.limitUserType"
size=
"small"
@
change=
"changeLimitUserType(item,index)"
>
<el-radio-group
v-model=
"item.limitUserType"
size=
"small"
@
change=
"changeLimitUserType(item, index)"
>
<el-radio
:label=
"1"
>
开单人
</el-radio>
<el-radio
:label=
"2"
>
患者
</el-radio>
</el-radio-group>
</el-col>
</el-form-item>
<el-form-item
label=
"购买限制"
>
<el-input-number
v-model=
"item.days"
style=
"margin-left: 5px;"
size=
"small"
:precision=
"0"
:min=
"1"
:max=
"100000"
></el-input-number>
<el-select
v-model=
"item.daysType"
size=
"small"
>
<el-input-number
v-model=
"item.days"
style=
"margin-left: 5px"
size=
"small"
:precision=
"0"
:min=
"1"
:max=
"100000"
></el-input-number>
<el-select
v-model=
"item.daysType"
size=
"small"
>
<el-option
v-for=
"(item,index) in daysTypeList"
v-for=
"(item,
index) in daysTypeList"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<span
style=
"margin-left: 5px;"
>
内,最多购买
</span>
<el-input-number
v-model=
"item.limitCount"
style=
"margin-left: 5px;"
size=
"small"
:precision=
"0"
:min=
"1"
:max=
"100000"
></el-input-number>
<span
style=
"margin-left: 5px;"
>
次
</span>
<span
style=
"margin-left: 5px"
>
内,最多购买
</span>
<el-input-number
v-model=
"item.limitCount"
style=
"margin-left: 5px"
size=
"small"
:precision=
"0"
:min=
"1"
:max=
"100000"
></el-input-number>
<span
style=
"margin-left: 5px"
>
次
</span>
</el-form-item>
</div>
<div
class=
"inline"
>
<el-form-item>
<el-button
size=
"small"
type=
"primary"
@
click=
"addBuyingLimit"
><i
class=
"el-icon-plus"
></i>
限购条件
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"addBuyingLimit"
><i
class=
"el-icon-plus"
></i>
限购条件
</el-button
>
</el-form-item>
</div>
</div>
</el-form>
<el-dialog
:title=
"stock.title"
:visible
.
sync=
"stockDio"
width=
"30%"
center
>
center
>
<div
class=
"stock-dia"
>
<div
class=
"stock-item"
>
更新库存后,将影响买家购买,请谨慎操作
</div>
<div
class=
"stock-item"
>
当前库存:
{{
formData
.
goodsStock
}}
</div>
<div
class=
"stock-item"
>
当前库存:
{{
formData
.
goodsStock
}}
</div>
<div
class=
"demo-input-suffix"
>
{{
stock
.
type
==
1
?
'减少数量'
:
'增加数量'
}}
:
<el-input
v-model=
"stock.num"
:placeholder=
"stock.placeholderTxt"
maxLength=
"8"
style=
"width: 180px;"
></el-input>
{{
stock
.
type
==
1
?
"减少数量"
:
"增加数量"
}}
:
<el-input
v-model=
"stock.num"
:placeholder=
"stock.placeholderTxt"
maxLength=
"8"
style=
"width: 180px"
></el-input>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: right
;
"
>
<span
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: right"
>
<el-button
type=
"primary"
@
click=
"updateStock"
>
完成
</el-button>
</span>
</el-dialog>
</div>
<!-- 添加药品 -->
<el-dialog
title=
"添加药品"
:visible
.
sync=
"baseAddVisible"
class=
"add-goods-dialog"
width=
"70%"
>
<el-dialog
title=
"添加药品"
:visible
.
sync=
"baseAddVisible"
class=
"add-goods-dialog"
width=
"70%"
>
<el-row
type=
"flex"
class=
"row-bg"
>
<el-col
:span=
"21"
>
<el-input
...
...
@@ -438,7 +716,14 @@
placeholder=
"试试搜索:药品69开头条形码/通用名称/商品名称/拼音首字母"
></el-input>
</el-col>
<el-col
:span=
"2"
><el-button
type=
"primary"
@
click=
"getSearchInfo"
class=
"add-goods-search"
>
搜索
</el-button></el-col>
<el-col
:span=
"2"
><el-button
type=
"primary"
@
click=
"getSearchInfo"
class=
"add-goods-search"
>
搜索
</el-button
></el-col
>
</el-row>
<el-table
:data=
"medData"
...
...
@@ -446,13 +731,36 @@
highlight-current-row
@
current-change=
"handleCurrentChange"
@
row-click=
"handleRowClick"
class=
"add-goods-table"
>
<el-table-column
property=
"productName"
label=
"产品名称/通用名称"
width=
"150"
></el-table-column>
<el-table-column
property=
"barCode"
label=
"条形码"
width=
"200"
></el-table-column>
<el-table-column
property=
"goodsName"
label=
"商品名称"
></el-table-column>
<el-table-column
property=
"approvalNumber"
label=
"批准文号"
width=
"150"
></el-table-column>
<el-table-column
property=
"specifications"
label=
"规格"
width=
"200"
></el-table-column>
<el-table-column
property=
"productionCompany"
label=
"生产企业"
></el-table-column>
class=
"add-goods-table"
>
<el-table-column
property=
"productName"
label=
"产品名称/通用名称"
width=
"150"
></el-table-column>
<el-table-column
property=
"barCode"
label=
"条形码"
width=
"200"
></el-table-column>
<el-table-column
property=
"goodsName"
label=
"商品名称"
></el-table-column>
<el-table-column
property=
"approvalNumber"
label=
"批准文号"
width=
"150"
></el-table-column>
<el-table-column
property=
"specifications"
label=
"规格"
width=
"200"
></el-table-column>
<el-table-column
property=
"productionCompany"
label=
"生产企业"
></el-table-column>
</el-table>
<div
class=
"add-goods--pagination"
>
<el-pagination
...
...
@@ -474,33 +782,56 @@
</el-row>
</el-dialog>
<!-- 新增药品 -->
<el-dialog
title=
"新增药品"
:visible
.
sync=
"isNewMeddialog"
class=
"add-med-dialog"
>
<el-form
:model=
"formData1"
ref=
"formData1"
:rules=
"rules1"
label-width=
"150px"
label-suffix=
":"
>
<el-dialog
title=
"新增药品"
:visible
.
sync=
"isNewMeddialog"
class=
"add-med-dialog"
>
<el-form
:model=
"formData1"
ref=
"formData1"
:rules=
"rules1"
label-width=
"150px"
label-suffix=
":"
>
<el-form-item
label=
"药品分类"
prop=
"medicalCategoryId"
>
<el-select
v-model=
"formData1.medicalCategoryId"
clearable
placeholder=
"请选择药品分类"
@
change=
"medicalChange"
>
<el-select
v-model=
"formData1.medicalCategoryId"
clearable
placeholder=
"请选择药品分类"
@
change=
"medicalChange"
>
<el-option
v-for=
"item in medicalCategoryList"
:key=
"item.id"
:label=
"item.categoryName"
:value=
"item.id"
>
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<div
v-if=
"formData1.medicalCategoryId"
>
<el-form-item
:label=
"mCommonName"
prop=
"medicCommonName"
class=
"medic-goods-max"
>
<el-form-item
:label=
"mCommonName"
prop=
"medicCommonName"
class=
"medic-goods-max"
>
<el-col
:span=
"16"
>
<el-input
size=
"small"
v-model=
"formData1.medicCommonName"
:placeholder=
"mCommonNameLabel"
style=
"width:
70%;
"
style=
"width:
70%
"
maxlength=
"60"
show-word-limit
></el-input>
</el-col>
</el-form-item>
<el-form-item
label=
"条形码"
prop=
"barCode"
v-if=
"![4,5].includes(formData1.medicalCategoryId)"
>
<el-form-item
label=
"条形码"
prop=
"barCode"
v-if=
"![4, 5].includes(formData1.medicalCategoryId)"
>
<el-col
:span=
"16"
>
<el-input
size=
"small"
...
...
@@ -512,7 +843,11 @@
<span
class=
"word-num"
>
(点击可快速录入下面的基本信息)
</span>
</el-col>
</el-form-item>
<el-form-item
:label=
"commonName"
prop=
"medicGoodsName"
class=
"medic-goods-max"
>
<el-form-item
:label=
"commonName"
prop=
"medicGoodsName"
class=
"medic-goods-max"
>
<el-col
:span=
"16"
>
<el-input
size=
"small"
...
...
@@ -526,37 +861,49 @@
</el-col>
</el-form-item>
<!-- 批准文号 -->
<el-form-item
label=
"批准文号"
prop=
"approvalNumber"
v-if=
"![4,5].includes(formData1.medicalCategoryId)"
>
<el-form-item
label=
"批准文号"
prop=
"approvalNumber"
v-if=
"![4, 5].includes(formData1.medicalCategoryId)"
>
<el-col
:span=
"16"
>
<el-input
size=
"small"
v-model=
"formData1.approvalNumber"
placeholder=
"请输入批准文号"
style=
"width:
70%;
"
style=
"width:
70%
"
></el-input>
</el-col>
</el-form-item>
<!-- 规格 -->
<el-form-item
label=
"规格"
prop=
"specifications"
v-if=
"![4,5].includes(formData1.medicalCategoryId)"
>
<el-form-item
label=
"规格"
prop=
"specifications"
v-if=
"![4, 5].includes(formData1.medicalCategoryId)"
>
<el-col
:span=
"18"
>
<el-input
size=
"small"
v-model=
"formData1.specifications"
placeholder=
"请输入规格"
style=
"width:
70%;
"
style=
"width:
70%
"
></el-input>
<span
class=
"word-num"
>
例如:0.125g*12袋/盒
</span>
</el-col>
</el-form-item>
<!-- 生产企业 -->
<el-form-item
label=
"生产企业"
prop=
"productionCompany"
v-if=
"![4,5].includes(formData1.medicalCategoryId)"
>
<el-form-item
label=
"生产企业"
prop=
"productionCompany"
v-if=
"![4, 5].includes(formData1.medicalCategoryId)"
>
<el-col
:span=
"16"
>
<el-input
size=
"small"
v-model=
"formData1.productionCompany"
placeholder=
"请输入生产企业"
style=
"width:
70%;
"
style=
"width:
70%
"
></el-input>
<span
class=
"word-num"
></span>
...
...
@@ -576,47 +923,58 @@
width=
"40%"
class=
"example-dialog"
>
<img
src=
"../../assets/image/s-example.png"
alt=
""
>
<img
src=
"../../assets/image/s-example.png"
alt=
""
/
>
</el-dialog>
</div>
</
template
>
<
script
>
import
BreadCrumb
from
"@/components/breadcrumb.vue"
;
import
Cropper
from
'@/components/common/cropper.vue'
;
import
{
getBarcodeData
,
getCategorysList
,
getContractList
,
getCooperationProjectList
,
getGoodsList
,
getGoodsListAll
,
getMedList
,
saveMedList
,
updateGoods
,
updateStock
}
from
'@/utils/goods'
;
import
Cropper
from
"@/components/common/cropper.vue"
;
import
{
getBarcodeData
,
getCategorysList
,
getContractList
,
getCooperationProjectList
,
getGoodsList
,
getGoodsListAll
,
getMedList
,
saveMedList
,
updateGoods
,
updateStock
,
}
from
"@/utils/goods"
;
import
{
isEmptyUtils
}
from
"@/utils/index"
;
import
{
createFilePath
,
doUpload
,
getFilePath
}
from
"@/utils/qiniu-util"
;
import
{
getStoreAdressRepot
}
from
"@/utils/shop"
;
import
{
closeLoading
,
openLoading
,
signFigures
}
from
"@/utils/utils"
;
import
{
originForm
,
originForm1
,
originForm3
}
from
'./common/forms'
;
import
{
originRules
,
originRules1
,
originRules3
}
from
'./common/rules'
;
import
draggable
from
"vuedraggable"
;
import
{
originForm
,
originForm1
,
originForm3
}
from
"./common/forms"
;
import
{
originRules
,
originRules1
,
originRules3
}
from
"./common/rules"
;
let
vm
=
null
;
let
vm
=
null
;
export
default
{
export
default
{
components
:
{
BreadCrumb
,
Cropper
,
draggable
draggable
,
},
data
()
{
return
{
data
()
{
return
{
shoImgDialog
:
false
,
// 查看展示
medicalCategoryList
:
[],
// 药品分类
isShowGoodsMsg
:
false
,
medicationId
:
''
,
// 药品id (搜索药品列表)
medicationDetailId
:
''
,
medicationId
:
""
,
// 药品id (搜索药品列表)
medicationDetailId
:
""
,
choiceMedData
:
[],
// 选中的基础药品展示
isShowGoods
:
false
,
// 是否展示商品表格
filterName
:
''
,
// 搜索药品
filterName
:
""
,
// 搜索药品
// 商品分类级联配置
goodsCategoryIdList
:
[],
cascaderProps
:
{
multiple
:
true
,
value
:
'id'
,
label
:
'categoryName'
,
children
:
'children'
value
:
"id"
,
label
:
"categoryName"
,
children
:
"children"
,
// checkStrictly: true
},
isNewMeddialog
:
false
,
// 新增药品弹窗
...
...
@@ -627,49 +985,54 @@ import draggable from "vuedraggable";
barAndGoodsFlag
:
false
,
// 编辑时商品名称和条形码是否可以编辑
goodDisabled
:
false
,
// 商品通用名称是否可编辑
isEdit
:
false
,
stock
:
{
title
:
'减少库存'
,
type
:
1
,
placeholderTxt
:
'请输入减少的库存数量'
,
num
:
''
stock
:
{
title
:
"减少库存"
,
type
:
1
,
placeholderTxt
:
"请输入减少的库存数量"
,
num
:
""
,
},
fileGoodsList
:
[],
fileGoodsList
:
[],
goodsCheckList
:
[],
fileIntrList
:[],
intrIndex
:
-
1
,
isShowFileList
:
false
,
isgoodStock
:
true
,
headIndex
:
-
1
,
stockDio
:
false
,
curmbFirst
:
'云鹊店铺'
,
curmbSecond
:
'商品管理'
,
curmbThird
:
'编辑商品'
,
// /live-manage?id=
jumPathThird
:
''
,
isgoodsImages
:
true
,
isSpecification_url
:
true
,
title
:
''
,
daysTypeList
:[{
label
:
'日'
,
fileIntrList
:
[],
intrIndex
:
-
1
,
isShowFileList
:
false
,
isgoodStock
:
true
,
headIndex
:
-
1
,
stockDio
:
false
,
curmbFirst
:
"云鹊店铺"
,
curmbSecond
:
"商品管理"
,
curmbThird
:
"编辑商品"
,
// /live-manage?id=
jumPathThird
:
""
,
isgoodsImages
:
true
,
isSpecification_url
:
true
,
title
:
""
,
daysTypeList
:
[
{
label
:
"日"
,
value
:
1
,
},
{
label
:
'周'
,
},
{
label
:
"周"
,
value
:
7
,
},
{
label
:
'月'
,
},
{
label
:
"月"
,
value
:
30
,
},
{
label
:
'年'
,
},
{
label
:
"年"
,
value
:
365
,
}],
formData
:
{...
JSON
.
parse
(
JSON
.
stringify
(
originForm
)),
reimburseMax
:
''
},
// 通用信息
},
],
formData
:
{
...
JSON
.
parse
(
JSON
.
stringify
(
originForm
)),
reimburseMax
:
""
},
// 通用信息
formData1
:
JSON
.
parse
(
JSON
.
stringify
(
originForm1
)),
// 基本信息
formData3
:
JSON
.
parse
(
JSON
.
stringify
(
originForm3
)),
buyLimitDtoList
:
[],
buyLimitDtoList
:
[],
rules
:
{},
rules1
:
{},
goodsId
:
0
,
// 新增时传0,更新时必需>0
goodsType
:
''
,
storeId
:
''
,
goodsType
:
""
,
storeId
:
""
,
commissionFlag
:
2
,
// 不同类型服务的表单通用字段
// 不同类型服务的表单通用字段
...
...
@@ -683,29 +1046,29 @@ import draggable from "vuedraggable";
cvWidth
:
1000
,
cvHeight
:
800
,
uploadType
:
1
,
cropDialogWidth
:
'900px'
,
cropDialogWidth
:
"900px"
,
cropBoxResizable
:
true
,
minCropBoxWidth
:
100
,
minCropBoxHeight
:
100
,
aspectRatio
:
16
/
9
aspectRatio
:
16
/
9
,
},
slide2
:
{
oriUrl
:
''
,
// 原图
oriUrl
:
""
,
// 原图
},
imgMouseOver1
:
false
,
uploadImgMessage1
:
false
,
//未上传图片,校验提示语
uploadImgMessage1
:
false
,
//未上传图片,校验提示语
isCheckServe
:
false
,
// 商品类型选择【检测服务】时!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
inputType
:
''
,
limitVisibleFlag
:
false
,
limit
:
{
title
:
"限购条件"
inputType
:
""
,
limitVisibleFlag
:
false
,
limit
:
{
title
:
"限购条件"
,
},
storeType
:
1
,
//1: "供货商",2: "小药房",3: "医生小店"
hasRepoFlag
:
0
,
//店铺是否有退货地址
videoList
:
[],
//视频上传文件列表
videoModel
:{
videoFullPath
:
''
},
videoList
:
[],
//视频上传文件列表
videoModel
:
{
videoFullPath
:
""
},
sumFile
:
0
,
uploadProgress
:
0
,
// 上传视频进度条
uploadProgress
:
0
,
// 上传视频进度条
cooperationProjectList
:
[],
// 合作项目
contractList
:
[],
// 合同
isProject
:
false
,
// 是否选择合作项目
...
...
@@ -716,57 +1079,73 @@ import draggable from "vuedraggable";
isAddServe
:
false
,
// 新增药品时 添加的是否为服务类 || 虚拟商品
goodsCategoryList
:
[],
isgoodsCategory
:
false
,
// 是否选择商品分类
isProjectId
:
false
}
isProjectId
:
false
,
};
},
computed
:
{
mCommonName
()
{
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
'产品名称'
:
'通用名称'
;
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
"产品名称"
:
"通用名称"
;
},
mCommonNameLabel
()
{
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
'请输入产品名称'
:
'请输入通用名称'
;
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
"请输入产品名称"
:
"请输入通用名称"
;
},
commonName
()
{
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
'品牌名/商品名'
:
'商品名称'
;
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
"品牌名/商品名"
:
"商品名称"
;
},
commonPlaceholder
()
{
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
'请输入品牌名/商品名'
:
'请输入商品名称'
;
}
return
[
4
,
5
].
includes
(
this
.
formData1
.
medicalCategoryId
)
?
"请输入品牌名/商品名"
:
"请输入商品名称"
;
},
},
created
()
{
vm
=
this
;
const
{
id
,
storeId
,
goodsType
,
inputType
,
commissionFlag
,
storeType
}
=
this
.
$route
.
query
;
//Idtype:1,内部 2.外部
vm
.
idType
=
localStorage
.
getItem
(
"storageIdType"
);
const
{
id
,
storeId
,
goodsType
,
inputType
,
commissionFlag
,
storeType
}
=
this
.
$route
.
query
;
this
.
goodsType
=
goodsType
;
this
.
storeId
=
storeId
;
this
.
inputType
=
inputType
||
''
;
this
.
inputType
=
inputType
||
""
;
this
.
commissionFlag
=
commissionFlag
;
this
.
storeType
=
storeType
;
this
.
rules
=
{...
originRules
};
this
.
rules
=
{
...
originRules
};
this
.
rules1
=
originRules1
;
this
.
rules3
=
originRules3
;
this
.
jumPathThird
=
'/goods-manage?storeId='
+
storeId
+
'&commissionFlag='
+
this
.
commissionFlag
+
'&storeType='
+
this
.
storeType
;
this
.
title
=
id
==
'add'
?
'新增商品'
:
'编辑商品'
;
this
.
isEdit
=
id
!=
'add'
;
this
.
jumPathThird
=
"/goods-manage?storeId="
+
storeId
+
"&commissionFlag="
+
this
.
commissionFlag
+
"&storeType="
+
this
.
storeType
;
this
.
title
=
id
==
"add"
?
"新增商品"
:
"编辑商品"
;
this
.
isEdit
=
id
!=
"add"
;
this
.
curmbThird
=
this
.
title
;
this
.
formData
.
storeId
=
Number
(
storeId
)
||
''
;
this
.
formData
.
storeId
=
Number
(
storeId
)
||
""
;
this
.
getCooperationProjectList
();
// 获取合作项目
if
(
id
!=
'add'
)
{
if
(
id
!=
"add"
)
{
this
.
getDetailByEdit
(
id
,
goodsType
);
}
else
{
this
.
getStoreAdress
();
}
// debugger;
// 判空
if
(
this
.
formData
.
leastCount
==
null
||
this
.
formData
.
leastCount
===
''
)
{
if
(
this
.
formData
.
leastCount
==
null
||
this
.
formData
.
leastCount
===
""
)
{
this
.
formData
.
leastCount
=
1
;
}
if
(
this
.
formData
.
mostCount
==
null
||
this
.
formData
.
mostCount
===
''
)
{
if
(
this
.
formData
.
mostCount
==
null
||
this
.
formData
.
mostCount
===
""
)
{
this
.
formData
.
mostCount
=
-
1
;
}
if
(
this
.
formData
.
incrType
==
null
||
this
.
formData
.
incrType
===
''
)
{
if
(
this
.
formData
.
incrType
==
null
||
this
.
formData
.
incrType
===
""
)
{
this
.
formData
.
incrType
=
2
;
}
this
.
getGoodsListAll
();
...
...
@@ -777,47 +1156,55 @@ import draggable from "vuedraggable";
},
getArr
(
arr
)
{
if
(
arr
.
length
>
0
)
{
let
newoodsList
=
[]
arr
.
forEach
(
item
=>
{
const
subArr
=
item
.
filter
(
i
=>
{
let
newoodsList
=
[];
arr
.
forEach
((
item
)
=>
{
const
subArr
=
item
.
filter
(
(
i
)
=>
{
return
i
!==
-
1
;
})
newoodsList
.
push
(
subArr
)
})
});
newoodsList
.
push
(
subArr
);
});
return
newoodsList
;
}
else
{
return
[]
return
[];
}
},
// 获取商品分类
getGoodsListAll
()
{
getGoodsListAll
().
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
getGoodsListAll
().
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
goodsCategoryList
=
res
.
data
;
}
})
});
},
// 取消
cancelComplete
()
{
this
.
$confirm
(
'取消后您填写的信息将不会被保存'
,
'确认取消吗?'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
this
.
$confirm
(
"取消后您填写的信息将不会被保存"
,
"确认取消吗?"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
this
.
$router
.
go
(
-
1
);
})
.
catch
(()
=>
{
});
})
.
catch
(()
=>
{
});
},
// 药品分类切换
medicalChange
(
val
)
{
if
([
4
,
5
].
includes
(
val
))
{
if
([
4
,
5
].
includes
(
val
))
{
this
.
isAddServe
=
true
;
}
this
.
$refs
.
formData1
.
clearValidate
();
const
formData1Arr
=
[
'medicCommonName'
,
'barCode'
,
'medicGoodsName'
,
'approvalNumber'
,
'specifications'
,
'productionCompany'
];
formData1Arr
.
map
(
item
=>
{
this
.
formData1
[
item
]
=
''
;
})
const
formData1Arr
=
[
"medicCommonName"
,
"barCode"
,
"medicGoodsName"
,
"approvalNumber"
,
"specifications"
,
"productionCompany"
,
];
formData1Arr
.
map
((
item
)
=>
{
this
.
formData1
[
item
]
=
""
;
});
},
// 获取药品分类
getCategorysList
()
{
...
...
@@ -827,11 +1214,11 @@ import draggable from "vuedraggable";
categoryLevel
:
1
,
parentId
:
0
,
};
getCategorysList
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
getCategorysList
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
medicalCategoryList
=
res
.
data
.
medicalCategorysList
;
}
})
});
},
handleSizeChange
(
val
)
{
this
.
pageSize
=
val
;
...
...
@@ -843,19 +1230,20 @@ import draggable from "vuedraggable";
this
.
searchAddGoods
();
},
delGoods
()
{
this
.
$confirm
(
'确认要删除该商品吗?'
,
''
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}).
then
(()
=>
{
this
.
$confirm
(
"确认要删除该商品吗?"
,
""
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
this
.
isShowGoods
=
false
;
this
.
choiceMedData
=
[];
this
.
$message
({
type
:
'success'
,
message
:
'删除成功!'
});
}).
catch
(()
=>
{
type
:
"success"
,
message
:
"删除成功!"
,
});
})
.
catch
(()
=>
{});
},
contractChange
(
val
)
{
if
(
val
)
{
...
...
@@ -866,7 +1254,7 @@ import draggable from "vuedraggable";
},
// 商品分类级联多选
searchCategoryChange
(
value
)
{
console
.
log
(
value
,
'商品分类级联多选'
)
console
.
log
(
value
,
"商品分类级联多选"
);
if
(
value
.
length
>
0
)
{
this
.
isgoodsCategory
=
false
;
}
else
{
...
...
@@ -878,7 +1266,7 @@ import draggable from "vuedraggable";
// 确认选择药品
confirmAddGoods
()
{
if
(
!
this
.
isSelectGoods
)
{
this
.
$message
.
error
(
'您还未选择药品'
);
this
.
$message
.
error
(
"您还未选择药品"
);
return
;
}
if
(
this
.
choiceMedData
.
length
>
0
)
{
...
...
@@ -906,7 +1294,7 @@ import draggable from "vuedraggable";
this
.
currentRow
=
val
;
this
.
formData3
.
medicationId
=
val
.
tradeMedicalLibId
;
this
.
formData3
.
medicationDetailId
=
val
.
id
;
this
.
isCheckServe
=
val
.
categoryName
==
5
?
true
:
false
;
this
.
isCheckServe
=
val
.
categoryName
==
5
?
true
:
false
;
let
current
=
[
this
.
currentRow
];
this
.
choiceMedData
=
current
;
}
...
...
@@ -914,13 +1302,21 @@ import draggable from "vuedraggable";
// 新增药品
addNewMed
()
{
let
isTrue
;
this
.
$refs
.
formData1
.
validate
((
valid
,
object
)
=>
{
this
.
$refs
.
formData1
.
validate
((
valid
,
object
)
=>
{
isTrue
=
valid
;
if
(
!
valid
)
return
false
;
});
if
(
!
isTrue
)
return
;
let
data
=
{};
const
{
specifications
,
productionCompany
,
approvalNumber
,
medicGoodsName
,
barCode
,
medicCommonName
,
medicalCategoryId
}
=
this
.
formData1
;
const
{
specifications
,
productionCompany
,
approvalNumber
,
medicGoodsName
,
barCode
,
medicCommonName
,
medicalCategoryId
,
}
=
this
.
formData1
;
// 服务类/虚拟商品
if
(
this
.
isAddServe
)
{
data
=
{
...
...
@@ -928,7 +1324,7 @@ import draggable from "vuedraggable";
medicCommonName
,
medicGoodsName
,
applySource
:
2
,
}
};
}
else
{
data
=
{
medicalCategoryId
,
...
...
@@ -936,7 +1332,7 @@ import draggable from "vuedraggable";
medicGoodsName
,
barCode
,
approvalNumber
,
medicalDetailFieldMap
:
{
specifications
,
productionCompany
},
medicalDetailFieldMap
:
{
specifications
,
productionCompany
},
applySource
:
2
,
};
}
...
...
@@ -944,33 +1340,35 @@ import draggable from "vuedraggable";
},
// 药品保存
saveMedList
(
data
)
{
saveMedList
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
saveMedList
(
data
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
$message
({
type
:
'success'
,
message
:
'新增药品成功!'
type
:
"success"
,
message
:
"新增药品成功!"
,
});
this
.
isNewMeddialog
=
false
;
this
.
choiceMedData
=
[
res
.
data
]
this
.
choiceMedData
=
[
res
.
data
]
;
this
.
formData3
.
medicationId
=
res
.
data
.
tradeMedicalLibId
;
this
.
formData3
.
medicationDetailId
=
res
.
data
.
id
;
this
.
isShowGoods
=
true
;
console
.
log
(
this
.
choiceMedData
,
'this.choiceMedData '
)
console
.
log
(
this
.
choiceMedData
,
"this.choiceMedData "
);
}
else
{
this
.
$message
({
type
:
'error'
,
message
:
res
.
message
type
:
"error"
,
message
:
res
.
message
,
});
}
}).
catch
(
err
=>
{
})
.
catch
((
err
)
=>
{
this
.
$message
({
type
:
'error'
,
message
:
err
.
message
type
:
"error"
,
message
:
err
.
message
,
});
});
})
},
// 新增药品
addNewGoods
()
{
addNewGoods
()
{
if
(
this
.
$refs
.
formData1
)
{
this
.
$refs
.
formData1
.
resetFields
();
}
...
...
@@ -998,104 +1396,127 @@ import draggable from "vuedraggable";
pageSize
:
this
.
pageSize
,
pageNo
:
this
.
pageNo
,
};
getMedList
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
getMedList
(
data
).
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
medData
=
res
.
data
.
smallStoreList
;
this
.
totalRows
=
res
.
data
.
totalNum
;
}
})
});
},
// 获取合同
getContractList
(
projectId
)
{
getContractList
(
projectId
||
0
).
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
getContractList
(
projectId
||
0
).
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
contractList
=
res
.
data
;
}
})
});
},
// 获取合作项目
getCooperationProjectList
()
{
getCooperationProjectList
().
then
(
res
=>
{
if
(
res
.
code
==
'000000'
)
{
getCooperationProjectList
().
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
cooperationProjectList
=
res
.
data
;
}
})
});
},
// 切换合同
getContract
(
projectId
)
{
this
.
formData3
.
contractId
=
''
;
this
.
formData3
.
contractId
=
""
;
this
.
contractList
=
[];
this
.
getContractList
(
projectId
);
},
projectClear
()
{
this
.
formData3
.
contractId
=
''
;
this
.
formData3
.
contractId
=
""
;
this
.
contractList
=
[];
},
// 判断imgurl是否有效
checkImgExists
(
imgurl
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
var
ImgObj
=
new
Image
()
ImgObj
.
src
=
imgurl
ImgObj
.
onload
=
function
(
res
)
{
resolve
(
res
)
}
ImgObj
.
onerror
=
function
(
err
)
{
reject
(
err
)
}
})
return
new
Promise
(
function
(
resolve
,
reject
)
{
var
ImgObj
=
new
Image
();
ImgObj
.
src
=
imgurl
;
ImgObj
.
onload
=
function
(
res
)
{
resolve
(
res
);
};
ImgObj
.
onerror
=
function
(
err
)
{
reject
(
err
);
};
});
},
//eidt状态
async
getDetailByEdit
(
id
)
{
this
.
goodsId
=
id
;
async
getDetailByEdit
(
id
)
{
this
.
goodsId
=
id
;
const
res
=
await
getGoodsList
({
goodsIdList
:
[
id
],
goodsName
:
''
,
goodsType
:
''
,
pageNo
:
1
,
goodsIdList
:
[
id
],
goodsName
:
""
,
goodsType
:
""
,
pageNo
:
1
,
pageSize
:
10
,
storeId
:
this
.
storeId
,
applySource
:
2
applySource
:
2
,
});
if
(
res
.
code
!=
'000000'
)
{
if
(
res
.
code
!=
"000000"
)
{
return
this
.
$message
({
message
:
res
.
message
,
type
:
'error'
type
:
"error"
,
});
}
closeLoading
(
this
);
if
(
res
.
data
==
null
)
{
if
(
res
.
data
==
null
)
{
return
this
.
$message
({
type
:
'error'
type
:
"error"
,
});
}
const
{
goodsList
,
hasRepoFlag
}
=
res
.
data
;
const
{
goodsName
,
goodsDescription
,
goodsType
,
expressLimitFlag
,
goodsHeaderImages
=
[],
goodsVideoList
=
[],
contractId
,
cooperationProjectId
,
goodsCategoryIdArr
,
medicationInfo
}
=
goodsList
[
0
];
const
{
goodsList
,
hasRepoFlag
}
=
res
.
data
;
const
{
goodsName
,
goodsDescription
,
goodsType
,
expressLimitFlag
,
goodsHeaderImages
=
[],
goodsVideoList
=
[],
contractId
,
cooperationProjectId
,
goodsCategoryIdArr
,
medicationInfo
,
}
=
goodsList
[
0
];
const
goodDet
=
goodsList
[
0
];
goodDet
.
otc1
=
goodDet
.
otc
?
'1'
:
'0'
;
goodDet
.
otc1
=
goodDet
.
otc
?
"1"
:
"0"
;
// 查询药品列表
this
.
choiceMedData
=
[
medicationInfo
];
if
(
this
.
choiceMedData
.
length
>
0
)
{
this
.
isShowGoods
=
true
;}
if
(
this
.
choiceMedData
.
length
>
0
)
{
this
.
isShowGoods
=
true
;
}
this
.
isProject
=
Boolean
(
cooperationProjectId
);
if
(
this
.
isProject
)
{
this
.
getContractList
(
cooperationProjectId
)}
if
(
this
.
isProject
)
{
this
.
getContractList
(
cooperationProjectId
);
}
this
.
isContract
=
Boolean
(
contractId
);
// this.formData1 = goodDet;
this
.
formData
=
goodDet
;
this
.
formData3
=
{
goodsName
,
goodsDescription
,
goodsHeaderImages
,
goodsVideoList
,
goodsType
,
contractId
,
cooperationProjectId
};
this
.
formData3
=
{
goodsName
,
goodsDescription
,
goodsHeaderImages
,
goodsVideoList
,
goodsType
,
contractId
,
cooperationProjectId
,
};
this
.
formData3
.
medicationId
=
medicationInfo
.
tradeMedicalLibId
;
this
.
formData3
.
medicationDetailId
=
medicationInfo
.
id
;
this
.
goodsCategoryIdList
=
this
.
getArr
(
goodsCategoryIdArr
);
this
.
hasRepoFlag
=
hasRepoFlag
;
this
.
buyLimitDtoList
=
this
.
formData
.
buyLimitDtoList
;
this
.
formData
.
expressLimitFlag
=
expressLimitFlag
;
this
.
formData
.
optPrice
=
this
.
formData
.
costPrice
/
100
;
this
.
formData
.
realCostPrice
=
this
.
formData
.
realCostPrice
/
100
;
this
.
formData
.
scorePerformance
=
this
.
formData
.
scorePerformance
/
100
;
this
.
fileGoodsList
=
this
.
getImages
(
goodDet
.
goodsImgList
,
1
);
this
.
fileIntrList
=
this
.
getImages
(
goodDet
.
goodsDetailImageList
,
2
);
this
.
formData
.
optPrice
=
this
.
formData
.
costPrice
/
100
;
this
.
formData
.
realCostPrice
=
this
.
formData
.
realCostPrice
/
100
;
this
.
formData
.
scorePerformance
=
this
.
formData
.
scorePerformance
/
100
;
this
.
fileGoodsList
=
this
.
getImages
(
goodDet
.
goodsImgList
,
1
);
this
.
fileIntrList
=
this
.
getImages
(
goodDet
.
goodsDetailImageList
,
2
);
this
.
formData
.
stock
=
this
.
formData
.
goodsStock
;
this
.
formData
.
reimburseMax
=
this
.
formData
.
reimburseMax
/
100
;
this
.
formData
.
reimburseMax
=
this
.
formData
.
reimburseMax
/
100
;
if
(
goodDet
.
goodsVideoList
.
length
>
0
)
{
this
.
videoList
.
push
(
goodDet
.
goodsVideoList
[
0
]);
this
.
videoModel
.
videoFullPath
=
this
.
videoList
[
0
].
goodsImgUrl
;
...
...
@@ -1110,15 +1531,14 @@ import draggable from "vuedraggable";
// })
// this.fileGoodsList = newImgList;
console
.
log
(
'fileGoodsList'
,
this
.
fileGoodsList
);
console
.
log
(
"fileGoodsList"
,
this
.
fileGoodsList
);
this
.
rules
=
{
...
this
.
rules
,
...
originRules
...
originRules
,
};
},
getImages
(
d
,
type
)
{
return
d
.
map
(
v
=>
({
return
d
.
map
((
v
)
=>
({
url
:
type
==
1
?
v
.
goodsImgUrl
:
v
.
imageUrl
,
imageUrl
:
type
==
1
?
v
.
goodsImgUrl
:
v
.
imageUrl
,
goodsImgUrl
:
type
==
1
?
v
.
goodsImgUrl
:
v
.
imageUrl
,
...
...
@@ -1127,8 +1547,7 @@ import draggable from "vuedraggable";
imgSort
:
v
.
imgSort
,
imageType
:
type
==
1
?
v
.
imgType
:
v
.
imageType
,
miniProgramShow
:
v
.
miniProgramShow
===
0
?
0
:
1
,
})
);
}));
},
// 修改条形码
changeBarCode
(
val
)
{
...
...
@@ -1137,98 +1556,110 @@ import draggable from "vuedraggable";
// this.goodDisabled = false;
},
//快速录入
fastInput
(
type
)
{
fastInput
(
type
)
{
const
code
=
this
.
formData1
.
barCode
.
trim
();
if
(
code
==
''
)
{
if
(
code
==
""
)
{
// this.$refs.formData1.validateField("barCode")
this
.
$message
({
message
:
'请输入条形码'
,
type
:
'error'
message
:
"请输入条形码"
,
type
:
"error"
,
});
return
;
}
getBarcodeData
(
code
).
then
((
res
)
=>
{
if
(
res
.
code
!=
'000000'
)
{
if
(
res
.
code
!=
"000000"
)
{
return
this
.
$message
({
message
:
res
.
message
,
type
:
'error'
type
:
"error"
,
});
}
if
(
res
.
data
==
null
)
{
if
(
res
.
data
==
null
)
{
return
this
.
$message
({
message
:
'未查询到数据,请手动输入'
,
type
:
'warning'
message
:
"未查询到数据,请手动输入"
,
type
:
"warning"
,
});
}
const
{
medicCommonName
,
medicGoodsName
,
medicalDetailFieldMap
,
approvalNumber
}
=
res
.
data
;
const
{
productionCompany
,
specifications
}
=
medicalDetailFieldMap
;
let
fastParm
=
{
medicCommonName
,
medicGoodsName
,
specifications
,
productionCompany
,
approvalNumber
}
this
.
formData1
=
Object
.
assign
(
this
.
formData1
,
fastParm
)
})
const
{
medicCommonName
,
medicGoodsName
,
medicalDetailFieldMap
,
approvalNumber
,
}
=
res
.
data
;
const
{
productionCompany
,
specifications
}
=
medicalDetailFieldMap
;
let
fastParm
=
{
medicCommonName
,
medicGoodsName
,
specifications
,
productionCompany
,
approvalNumber
,
};
this
.
formData1
=
Object
.
assign
(
this
.
formData1
,
fastParm
);
});
},
updateStock
()
{
updateStock
()
{
let
r
=
/^
\+?[
1-9
][
0-9
]
*$/
;
//造假 接口来了删掉
if
(
this
.
stock
.
num
<=
0
)
{
if
(
this
.
stock
.
num
<=
0
)
{
return
this
.
$message
({
message
:
'增加库存数量不得为0'
,
type
:
'warning'
message
:
"增加库存数量不得为0"
,
type
:
"warning"
,
});
}
if
(
!
r
.
test
(
this
.
stock
.
num
))
{
if
(
!
r
.
test
(
this
.
stock
.
num
))
{
return
this
.
$message
({
message
:
'库存数量必须正整数'
,
type
:
'warning'
message
:
"库存数量必须正整数"
,
type
:
"warning"
,
});
}
if
(
this
.
stock
.
type
==
1
)
{
if
(
this
.
stock
.
num
>
this
.
formData
.
goodsStock
)
{
if
(
this
.
stock
.
type
==
1
)
{
if
(
this
.
stock
.
num
>
this
.
formData
.
goodsStock
)
{
return
this
.
$message
({
message
:
'减少库存数量不得大于当前库存'
,
type
:
'warning'
message
:
"减少库存数量不得大于当前库存"
,
type
:
"warning"
,
});
}
this
.
formData
.
stock
=
this
.
formData
.
goodsStock
-
this
.
stock
.
num
this
.
formData
.
decrStock
=
Number
(
this
.
stock
.
num
)
this
.
formData
.
incrStock
=
''
}
else
if
(
this
.
stock
.
type
==
2
){
this
.
formData
.
stock
=
Number
(
this
.
stock
.
num
)
+
Number
(
this
.
formData
.
goodsStock
)
this
.
formData
.
incrStock
=
Number
(
this
.
stock
.
num
)
this
.
formData
.
decrStock
=
''
this
.
formData
.
stock
=
this
.
formData
.
goodsStock
-
this
.
stock
.
num
;
this
.
formData
.
decrStock
=
Number
(
this
.
stock
.
num
);
this
.
formData
.
incrStock
=
""
;
}
else
if
(
this
.
stock
.
type
==
2
)
{
this
.
formData
.
stock
=
Number
(
this
.
stock
.
num
)
+
Number
(
this
.
formData
.
goodsStock
);
this
.
formData
.
incrStock
=
Number
(
this
.
stock
.
num
);
this
.
formData
.
decrStock
=
""
;
}
//this.formData.goodsStock = this.formData.stock
this
.
isgoodStock
=
true
;
this
.
stockDio
=
false
this
.
stockDio
=
false
;
},
changeStock
(
type
)
{
if
(
this
.
formData
.
stock
==
0
&&
type
==
1
)
{
changeStock
(
type
)
{
if
(
this
.
formData
.
stock
==
0
&&
type
==
1
)
{
return
;
}
let
str
=
type
==
1
?
'减少'
:
'增加'
,
let
str
=
type
==
1
?
"减少"
:
"增加"
,
txt
=
`请输入
${
str
}
的库存数量`
,
tit
=
str
+
'库存'
tit
=
str
+
"库存"
;
this
.
stock
=
{
title
:
tit
,
title
:
tit
,
type
,
num
:
''
,
placeholderTxt
:
txt
}
this
.
stockDio
=
true
num
:
""
,
placeholderTxt
:
txt
,
};
this
.
stockDio
=
true
;
},
complete
()
{
let
formNameList
=
[
'formData'
,
'formData3'
];
this
.
formData
=
{
...
this
.
formData
,...
this
.
formData3
};
let
formNameList
=
[
"formData"
,
"formData3"
];
this
.
formData
=
{
...
this
.
formData
,
...
this
.
formData3
};
for
(
let
i
=
0
;
i
<
this
.
fileGoodsList
.
length
;
i
++
)
{
this
.
fileGoodsList
[
i
].
imageSort
=
i
+
1
for
(
let
i
=
0
;
i
<
this
.
fileGoodsList
.
length
;
i
++
)
{
this
.
fileGoodsList
[
i
].
imageSort
=
i
+
1
;
}
for
(
let
j
=
0
;
j
<
this
.
fileIntrList
.
length
;
j
++
)
{
this
.
fileIntrList
[
j
].
imageSort
=
j
+
1
for
(
let
j
=
0
;
j
<
this
.
fileIntrList
.
length
;
j
++
)
{
this
.
fileIntrList
[
j
].
imageSort
=
j
+
1
;
}
this
.
formData
.
categoryId
=
this
.
formData
.
goodsType
this
.
formData
.
otc
=
this
.
formData
.
otc1
==
1
?
true
:
false
this
.
isgoodStock
=
this
.
formData
.
stock
>
0
?
true
:
false
this
.
formData
.
categoryId
=
this
.
formData
.
goodsType
;
this
.
formData
.
otc
=
this
.
formData
.
otc1
==
1
?
true
:
false
;
this
.
isgoodStock
=
this
.
formData
.
stock
>
0
?
true
:
false
;
this
.
formData
.
goodsId
=
this
.
goodsId
;
this
.
formData
.
goodsImages
=
this
.
fileGoodsList
;
this
.
formData
.
goodsHeaderImages
=
this
.
fileGoodsList
;
...
...
@@ -1236,91 +1667,105 @@ import draggable from "vuedraggable";
this
.
formData
.
goodsDetailImages
=
this
.
fileIntrList
;
// 商品详情图
this
.
formData
.
buyLimitDtoList
=
this
.
buyLimitDtoList
;
this
.
formData
.
goodsCategoryIdList
=
this
.
goodsCategoryIdList
;
this
.
isgoodsImages
=
this
.
formData
.
goodsImages
.
length
==
0
?
false
:
true
;
this
.
isSpecification_url
=
this
.
formData
.
goodsDetailImages
.
length
==
0
?
false
:
true
;
this
.
isgoodsImages
=
this
.
formData
.
goodsImages
.
length
==
0
?
false
:
true
;
this
.
isSpecification_url
=
this
.
formData
.
goodsDetailImages
.
length
==
0
?
false
:
true
;
// 判断是否只选择了项目-合同名称的其中一项
const
{
cooperationProjectId
,
contractId
,
goodsCategoryIdList
}
=
this
.
formData
;
const
{
cooperationProjectId
,
contractId
,
goodsCategoryIdList
}
=
this
.
formData
;
if
(
!
goodsCategoryIdList
.
length
)
{
this
.
isgoodsCategory
=
true
;
return
this
.
$message
({
message
:
'请选择商品分类'
,
type
:
'error'
message
:
"请选择商品分类"
,
type
:
"error"
,
});
}
if
(
!
cooperationProjectId
||
!
contractId
)
{
this
.
isProjectId
=
true
;
return
this
.
$message
({
message
:
'请关联项目名称'
,
type
:
'error'
message
:
"请关联项目名称"
,
type
:
"error"
,
});
}
// 是否选择新增药品
if
(
this
.
choiceMedData
.
length
==
0
)
{
this
.
isShowGoodsMsg
=
true
;
this
.
$message
({
message
:
'请选择基础药品'
,
type
:
'error'
message
:
"请选择基础药品"
,
type
:
"error"
,
});
return
;
}
let
isTrue
=
false
;
let
item
=
""
;
for
(
let
i
=
0
;
i
<
formNameList
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
formNameList
.
length
;
i
++
)
{
item
=
formNameList
[
i
];
this
.
$refs
[
item
].
validate
((
valid
,
object
)
=>
{
this
.
$refs
[
item
].
validate
((
valid
,
object
)
=>
{
isTrue
=
valid
;
if
(
!
valid
)
return
false
;
});
if
(
!
isTrue
)
{
if
(
!
isTrue
)
{
return
;
}
}
// 是否上传商品头图 || 是否上传商品详情图片 || 库存是否为0 || 单次购买上线是否符合要求
if
(
!
this
.
isgoodsImages
||
!
this
.
isSpecification_url
||!
this
.
isgoodStock
||
!
this
.
checkCount
())
return
;
if
(
!
this
.
isgoodsImages
||
!
this
.
isSpecification_url
||
!
this
.
isgoodStock
||
!
this
.
checkCount
()
)
return
;
if
(
!
isTrue
)
{
if
(
!
isTrue
)
{
return
false
;
}
else
{
this
.
formData
.
costPrice
=
signFigures
(
this
.
formData
.
optPrice
*
100
,
10
);
this
.
formData
.
realCostPrice
=
signFigures
(
this
.
formData
.
realCostPrice
*
100
,
10
);
this
.
formData
.
reimburseMax
=
signFigures
(
this
.
formData
.
reimburseMax
*
100
,
10
);
}
else
{
this
.
formData
.
costPrice
=
signFigures
(
this
.
formData
.
optPrice
*
100
,
10
);
this
.
formData
.
realCostPrice
=
signFigures
(
this
.
formData
.
realCostPrice
*
100
,
10
);
this
.
formData
.
reimburseMax
=
signFigures
(
this
.
formData
.
reimburseMax
*
100
,
10
);
this
.
formData
.
hasChanged
=
true
;
this
.
formData
.
inputType
=
this
.
inputType
;
this
.
updateGoodsInfo
();
}
},
//更新商品
updateGoodsInfo
()
{
console
.
log
(
'提交值'
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
formData
)));
updateGoodsInfo
()
{
console
.
log
(
"提交值"
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
formData
)));
// const submieFn = this.isCheckServe ? updateGoodsV2 : updateGoods;
const
submieFn
=
updateGoods
;
let
params
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
formData
));
params
.
scorePerformance
=
params
.
scorePerformance
*
100
;
console
.
log
(
'提交params'
,
params
)
submieFn
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
!==
'000000'
)
{
console
.
log
(
"提交params"
,
params
);
submieFn
(
params
).
then
((
res
)
=>
{
if
(
res
.
code
!==
"000000"
)
{
return
this
.
$message
({
message
:
res
.
message
,
type
:
'error'
type
:
"error"
,
});
}
vm
.
$message
.
success
(
"操作成功"
);
this
.
$router
.
push
({
path
:
'/goods-manage'
,
path
:
"/goods-manage"
,
query
:
{
storeId
:
this
.
formData
.
storeId
,
commissionFlag
:
this
.
commissionFlag
,
storeType
:
this
.
storeType
}
})
})
storeType
:
this
.
storeType
,
},
});
});
},
imgExceed
(
file
)
{
if
(
file
.
length
>
6
)
{
this
.
$message
.
error
(
"最多只能上传6张图片"
);
};
}
},
//上传商品头图
beforeUploadPic
(
file
)
{
...
...
@@ -1329,7 +1774,7 @@ import draggable from "vuedraggable";
// return ;
// }
let
vm
=
this
;
let
picTypes
=
[
'image/jpeg'
,
'image/png'
]
let
picTypes
=
[
"image/jpeg"
,
"image/png"
];
const
isLt200k
=
file
.
size
/
1024
<
200
;
if
(
picTypes
.
indexOf
(
file
.
type
)
==
-
1
)
{
...
...
@@ -1339,21 +1784,36 @@ import draggable from "vuedraggable";
_img
.
readAsDataURL
(
file
);
_img
.
onload
=
function
(
theFile
)
{
let
image
=
new
Image
()
image
.
src
=
theFile
.
target
.
result
let
image
=
new
Image
();
image
.
src
=
theFile
.
target
.
result
;
vm
.
slide2
.
oriUrl
=
theFile
.
target
.
result
;
image
.
onload
=
function
()
{
let
_this
=
this
;
if
(
_this
.
width
!==
750
||
_this
.
height
!==
750
)
{
vm
.
$message
.
error
(
"图片长宽尺寸必须为750*750"
);
return
;
};
}
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
);
console
.
log
(
'上传成功后路径'
,
path
);
console
.
log
(
"上传成功后路径"
,
path
);
let
len
=
vm
.
fileGoodsList
.
length
;
vm
.
fileGoodsList
.
push
({
miniProgramShow
:
1
,
url
:
path
.
fullPath
,
goodsImgUrl
:
path
.
fullPath
,
imageUrl
:
path
.
fullPath
,
imgSort
:
len
+
1
,
imageSort
:
len
+
1
,
goodsId
:
vm
.
formData
.
goodsId
});
vm
.
fileGoodsList
.
push
({
miniProgramShow
:
1
,
url
:
path
.
fullPath
,
goodsImgUrl
:
path
.
fullPath
,
imageUrl
:
path
.
fullPath
,
imgSort
:
len
+
1
,
imageSort
:
len
+
1
,
goodsId
:
vm
.
formData
.
goodsId
,
});
vm
.
isgoodsImages
=
true
;
// vm.fileGoodsList.push({url:path.fullPath,goodsImgUrl: path.fullPath,imageUrl:path.fullPath,imageName:'',imageSort: len+1,imageType: 2,id: null,})
...
...
@@ -1363,15 +1823,15 @@ import draggable from "vuedraggable";
};
},
//上传商品详情图片
beforeUploadPic1
(
file
,
type
)
{
beforeUploadPic1
(
file
,
type
)
{
// 图片 jpeg png 视频 mp4
const
isJPG
=
file
.
type
===
"image/jpeg"
;
const
isPNG
=
file
.
type
===
"image/png"
;
const
isMP4
=
file
.
type
===
"video/mp4"
;
if
(
isMP4
)
{
if
(
isMP4
)
{
this
.
beforeUploadVideo
(
file
);
}
if
(
isPNG
||
isJPG
)
{
if
(
isPNG
||
isJPG
)
{
this
.
beforeUpload
(
file
);
}
},
...
...
@@ -1392,15 +1852,29 @@ import draggable from "vuedraggable";
let
_img
=
new
FileReader
();
_img
.
readAsDataURL
(
file
);
_img
.
onload
=
function
(
theFile
)
{
let
image
=
new
Image
()
image
.
src
=
theFile
.
target
.
result
let
image
=
new
Image
();
image
.
src
=
theFile
.
target
.
result
;
vm
.
slide2
.
oriUrl
=
theFile
.
target
.
result
;
image
.
onload
=
function
()
{
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
);
let
len
=
vm
.
fileIntrList
.
length
;
vm
.
fileIntrList
.
push
({
miniProgramShow
:
1
,
url
:
path
.
fullPath
,
imageUrl
:
path
.
fullPath
,
imageSort
:
len
+
1
,
id
:
null
,
imageType
:
4
})
vm
.
fileIntrList
.
push
({
miniProgramShow
:
1
,
url
:
path
.
fullPath
,
imageUrl
:
path
.
fullPath
,
imageSort
:
len
+
1
,
id
:
null
,
imageType
:
4
,
});
vm
.
isSpecification_url
=
true
;
vm
.
$message
.
success
(
"上传成功"
);
});
...
...
@@ -1410,45 +1884,48 @@ import draggable from "vuedraggable";
return
isJPG
&&
isLt2M
;
},
//上传商品详情视频
beforeUploadVideo
(
file
)
{
console
.
log
(
'file :>> '
,
file
);
beforeUploadVideo
(
file
)
{
console
.
log
(
"file :>> "
,
file
);
let
self
=
this
;
if
(
file
.
name
.
indexOf
(
' '
)
!=
-
1
)
{
self
.
$message
.
warning
(
'文件名不能包含空格'
);
if
(
file
.
name
.
indexOf
(
" "
)
!=
-
1
)
{
self
.
$message
.
warning
(
"文件名不能包含空格"
);
return
;
}
const
isLt20M
=
file
.
size
/
1024
/
1024
<
20
;
if
(
!
isLt20M
)
{
self
.
$message
.
warning
(
'视频文件不能大于20M'
);
if
(
!
isLt20M
)
{
self
.
$message
.
warning
(
"视频文件不能大于20M"
);
return
;
}
let
updateFlag
=
self
.
checkUpdate
(
file
.
name
);
if
(
updateFlag
==
false
)
return
;
if
(
updateFlag
==
false
)
return
;
//如果没有选择文件,返回
if
(
isEmptyUtils
(
file
))
return
;
console
.
log
(
'object :>> '
,
file
.
type
.
split
(
'/'
));
console
.
log
(
"object :>> "
,
file
.
type
.
split
(
"/"
));
let
filety
=
"."
+
file
.
type
.
split
(
'/'
)[
1
];
if
(
filety
!=
".mp4"
)
{
self
.
$message
.
error
(
'仅支持上传mp4格式视频'
);
let
filety
=
"."
+
file
.
type
.
split
(
"/"
)[
1
];
if
(
filety
!=
".mp4"
)
{
self
.
$message
.
error
(
"仅支持上传mp4格式视频"
);
return
;
}
var
name_
=
file
.
name
.
split
(
'_'
);
if
(
name_
.
length
!=
4
){
self
.
$message
.
error
(
'上传视频文件名格式不正确:举例(GXY_001_02_03.mp4)'
);
var
name_
=
file
.
name
.
split
(
"_"
);
if
(
name_
.
length
!=
4
)
{
self
.
$message
.
error
(
"上传视频文件名格式不正确:举例(GXY_001_02_03.mp4)"
);
return
;
}
self
.
$message
.
info
(
'开始上传'
);
self
.
$message
.
info
(
"开始上传"
);
const
videoPath
=
createFilePath
(
file
,
file
.
name
)
const
videoPath
=
createFilePath
(
file
,
file
.
name
);
doUpload
(
self
,
file
,
videoPath
,
"preview4"
,
"uploadProgress1"
,
""
).
then
(
function
(
result
)
{
doUpload
(
self
,
file
,
videoPath
,
"preview4"
,
"uploadProgress1"
,
""
).
then
(
function
(
result
)
{
// self.videoModel.videoFullPath = result.fullPath;
let
fileItem
=
{
goodsImgUrl
:
result
.
fullPath
,
...
...
@@ -1457,29 +1934,30 @@ import draggable from "vuedraggable";
imageType
:
5
,
goodsId
:
self
.
formData
.
goodsId
,
id
:
null
,
deleteFlag
:
0
}
deleteFlag
:
0
,
};
self
.
fileIntrList
.
push
(
fileItem
);
console
.
log
(
'object :>> '
,
self
.
fileIntrList
);
console
.
log
(
"object :>> "
,
self
.
fileIntrList
);
return
false
;
});
}
);
},
//删除图片
deleteImg
(
item
,
d
)
{
let
index
=
''
for
(
let
i
=
0
;
i
<
d
.
length
;
i
++
)
{
if
(
item
.
url
==
d
[
i
].
url
)
{
deleteImg
(
item
,
d
)
{
let
index
=
""
;
for
(
let
i
=
0
;
i
<
d
.
length
;
i
++
)
{
if
(
item
.
url
==
d
[
i
].
url
)
{
index
=
i
;
break
break
;
}
}
d
.
splice
(
index
,
1
)
d
.
splice
(
index
,
1
);
},
// 获取裁剪的图片数据
getCropImg
(
argument
)
{
this
.
showCropper
=
false
;
this
.
cropData
=
argument
[
1
]
vm
.
doUploadQiNiu
(
argument
[
2
])
this
.
cropData
=
argument
[
1
];
vm
.
doUploadQiNiu
(
argument
[
2
]);
argument
[
3
]
&&
argument
[
3
].
destroy
();
// vm.slide2.oriUrl = "";
},
...
...
@@ -1491,12 +1969,11 @@ import draggable from "vuedraggable";
this
.
formData1
.
leastCount
=
this
.
formData
.
leastCount
;
}
}
else
if
(
type
===
2
)
{
if
(
this
.
formData
.
mostCount
>
-
1
)
{
if
(
this
.
formData
.
mostCount
>
-
1
)
{
this
.
formData
.
mostCount
-=
1
;
this
.
formData1
.
mostCount
=
this
.
formData
.
mostCount
;
}
}
else
if
(
type
===
3
){
}
else
if
(
type
===
3
)
{
if
(
this
.
formData
.
minWhole
>=
2
)
{
this
.
formData
.
minWhole
-=
1
;
}
...
...
@@ -1512,8 +1989,7 @@ import draggable from "vuedraggable";
}
else
if
(
type
===
2
)
{
this
.
formData
.
mostCount
+=
1
;
this
.
formData1
.
mostCount
=
this
.
formData
.
mostCount
;
}
else
if
(
type
===
3
){
}
else
if
(
type
===
3
)
{
this
.
formData
.
minWhole
+=
1
;
}
// if (this.formData.mostCount
<
this
.
formData
.
leastCount
)
{
...
...
@@ -1521,106 +1997,110 @@ import draggable from "vuedraggable";
// }
},
// 上传七牛
doUploadQiNiu
(
file
){
doUpload
(
this
,
file
,
getFilePath
(
file
,
null
),
'preview4'
,
'uploadProgress1'
,
''
).
then
(
function
(
path
)
{
doUploadQiNiu
(
file
)
{
doUpload
(
this
,
file
,
getFilePath
(
file
,
null
),
"preview4"
,
"uploadProgress1"
,
""
).
then
(
function
(
path
)
{
vm
.
formData
.
headUrl
=
path
.
fullPath
;
vm
.
$message
.
success
(
'上传成功'
);
vm
.
$message
.
success
(
"上传成功"
);
});
},
addBuyingLimit
()
{
if
(
this
.
buyLimitDtoList
!=
null
&&
this
.
buyLimitDtoList
.
length
==
2
)
{
addBuyingLimit
()
{
if
(
this
.
buyLimitDtoList
!=
null
&&
this
.
buyLimitDtoList
.
length
==
2
)
{
this
.
$message
({
message
:
'最多添加两个限制条件'
,
type
:
'warning'
message
:
"最多添加两个限制条件"
,
type
:
"warning"
,
});
return
;
}
if
(
this
.
buyLimitDtoList
==
null
||
this
.
buyLimitDtoList
.
length
==
0
)
{
if
(
this
.
buyLimitDtoList
==
null
||
this
.
buyLimitDtoList
.
length
==
0
)
{
this
.
buyLimitDtoList
.
push
({
days
:
0
,
daysType
:
1
,
limitCount
:
0
,
limitUserType
:
1
})
days
:
0
,
daysType
:
1
,
limitCount
:
0
,
limitUserType
:
1
,
});
return
;
}
if
(
this
.
buyLimitDtoList
.
length
<
2
)
{
if
(
this
.
buyLimitDtoList
.
length
<
2
)
{
let
limitUserType
=
1
;
if
(
this
.
buyLimitDtoList
[
0
].
limitUserType
==
1
)
{
if
(
this
.
buyLimitDtoList
[
0
].
limitUserType
==
1
)
{
limitUserType
=
2
;
}
this
.
buyLimitDtoList
.
push
({
days
:
0
,
daysType
:
1
,
limitCount
:
0
,
limitUserType
:
limitUserType
})
days
:
0
,
daysType
:
1
,
limitCount
:
0
,
limitUserType
:
limitUserType
,
});
}
// this.limitVisibleFlag = true;
},
delLimit
(
index
)
{
this
.
buyLimitDtoList
.
splice
(
index
,
1
);
delLimit
(
index
)
{
this
.
buyLimitDtoList
.
splice
(
index
,
1
);
},
changeLimitUserType
(
item
,
index
)
{
if
(
item
.
limitUserType
==
1
)
{
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
0
)
{
changeLimitUserType
(
item
,
index
)
{
if
(
item
.
limitUserType
==
1
)
{
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
0
)
{
this
.
buyLimitDtoList
[
1
].
limitUserType
=
2
;
}
else
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
1
){
}
else
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
1
)
{
this
.
buyLimitDtoList
[
0
].
limitUserType
=
2
;
}
}
else
{
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
0
){
}
else
{
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
0
)
{
this
.
buyLimitDtoList
[
1
].
limitUserType
=
1
;
}
else
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
1
){
}
else
if
(
this
.
buyLimitDtoList
.
length
==
2
&&
index
==
1
)
{
this
.
buyLimitDtoList
[
0
].
limitUserType
=
1
;
}
}
},
checkCount
()
{
checkCount
()
{
let
flag
=
true
;
if
(
this
.
formData
.
saleType
==
1
&&
this
.
formData
.
mostCount
==
0
)
{
if
(
this
.
formData
.
saleType
==
1
&&
this
.
formData
.
mostCount
==
0
)
{
flag
=
false
;
this
.
$message
({
message
:
'单次购买上限不能为0'
,
type
:
'warning'
message
:
"单次购买上限不能为0"
,
type
:
"warning"
,
});
return
flag
;
}
if
(
this
.
formData
.
saleType
==
1
&&
this
.
formData
.
mostCount
!=
-
1
&&
this
.
formData
.
mostCount
<
this
.
formData
.
leastCount
){
if
(
this
.
formData
.
saleType
==
1
&&
this
.
formData
.
mostCount
!=
-
1
&&
this
.
formData
.
mostCount
<
this
.
formData
.
leastCount
)
{
flag
=
false
;
this
.
$message
({
message
:
'单次购买上限不能小于最小起购件数'
,
type
:
'warning'
message
:
"单次购买上限不能小于最小起购件数"
,
type
:
"warning"
,
});
return
flag
;
}
return
flag
;
},
goShopDeatil
()
{
this
.
$router
.
push
({
path
:
`/create-shop`
,
query
:
{
query
:
{
storeId
:
this
.
storeId
,
// storeData: JSON.stringify(row),
}
})
},
});
},
//店铺是否配置售后地址
getStoreAdress
()
{
getStoreAdressRepot
(
this
.
storeId
).
then
(
res
=>
{
getStoreAdressRepot
(
this
.
storeId
).
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
// repotList 地址数组
if
(
res
.
data
&&
res
.
data
.
repotList
&&
res
.
data
.
repotList
.
length
)
{
if
(
res
.
data
&&
res
.
data
.
repotList
&&
res
.
data
.
repotList
.
length
)
{
this
.
hasRepoFlag
=
true
;
}
else
{
this
.
hasRepoFlag
=
false
;
...
...
@@ -1628,21 +2108,20 @@ import draggable from "vuedraggable";
}
else
{
this
.
$message
.
error
(
res
.
message
);
}
})
});
},
// 视频
deleteVideo
(
videoList
)
{
this
.
videoList
=
[];
this
.
videoModel
.
videoFullPath
=
''
;
this
.
videoModel
.
videoFullPath
=
""
;
},
beforeVideoUpload
(
file
)
{
const
video2M
=
file
.
size
/
1024
/
1024
<
20
;
console
.
log
(
file
.
size
,
'video2Mvideo2Mvideo2M'
)
const
video2M
=
file
.
size
/
1024
/
1024
<
20
;
console
.
log
(
file
.
size
,
"video2Mvideo2Mvideo2M"
);
if
(
!
video2M
)
{
this
.
$message
.
error
(
'上传视频大小不能超过20M!'
);
}
else
{
this
.
$message
.
error
(
"上传视频大小不能超过20M!"
);
}
else
{
this
.
doVideoUpload
(
file
,
1
);
}
},
...
...
@@ -1656,29 +2135,29 @@ import draggable from "vuedraggable";
},
checkUpdate
(
name
)
{
let
flag
=
true
;
for
(
let
i
=
0
;
i
<
this
.
videoList
.
length
;
i
++
)
{
if
(
this
.
videoList
[
i
].
name
==
name
)
{
for
(
let
i
=
0
;
i
<
this
.
videoList
.
length
;
i
++
)
{
if
(
this
.
videoList
[
i
].
name
==
name
)
{
flag
=
false
;
this
.
$message
.
warning
(
'上传文件重发'
);
this
.
$message
.
warning
(
"上传文件重发"
);
}
}
console
.
log
(
'name'
,
name
,
''
,
this
.
videoList
)
console
.
log
(
"name"
,
name
,
""
,
this
.
videoList
);
return
flag
;
},
doVideoUpload
(
file
,
index
)
{
console
.
log
(
'file'
,
file
);
console
.
log
(
"file"
,
file
);
//console.log('videoList项目列表:',this.videoList);
this
.
videoModel
.
videoFullPath
=
''
;
if
(
file
.
name
.
indexOf
(
' '
)
!=
-
1
)
{
this
.
$message
.
warning
(
'文件名不能包含空格'
);
this
.
videoModel
.
videoFullPath
=
""
;
if
(
file
.
name
.
indexOf
(
" "
)
!=
-
1
)
{
this
.
$message
.
warning
(
"文件名不能包含空格"
);
return
;
}
let
updateFlag
=
this
.
checkUpdate
(
file
.
name
);
if
(
updateFlag
==
false
)
{
if
(
updateFlag
==
false
)
{
return
;
}
var
ext
=
file
.
type
var
arr
=
ext
.
split
(
'/'
);
var
ext
=
file
.
type
;
var
arr
=
ext
.
split
(
"/"
);
var
filety
=
"."
+
arr
[
1
];
/*if (filety.indexOf(".pdf") < 0 && filety.indexOf(".jpeg") < 0 && filety.indexOf(".jpg") < 0
&& filety.indexOf(".png") < 0 && filety.indexOf(".mp4") < 0) {
...
...
@@ -1692,47 +2171,54 @@ import draggable from "vuedraggable";
return
;
}
console
.
log
(
'file.type'
,
file
.
type
)
if
(
filety
!=
".mp4"
)
{
console
.
log
(
"file.type"
,
file
.
type
);
if
(
filety
!=
".mp4"
)
{
// if (file.type !== 'video/mp4') {
self
.
$message
.
error
(
'仅支持上传mp4格式视频'
);
self
.
$message
.
error
(
"仅支持上传mp4格式视频"
);
return
;
}
var
arr
=
file
.
name
.
split
(
'_'
);
if
(
arr
.
length
!=
4
){
self
.
$message
.
error
(
'上传视频文件名格式不正确:举例(GXY_001_02_03.mp4)'
);
var
arr
=
file
.
name
.
split
(
"_"
);
if
(
arr
.
length
!=
4
)
{
self
.
$message
.
error
(
"上传视频文件名格式不正确:举例(GXY_001_02_03.mp4)"
);
return
;
}
self
.
$message
.
info
(
'开始上传'
);
self
.
videoModel
.
videoPath
=
createFilePath
(
file
,
file
.
name
)
self
.
$message
.
info
(
"开始上传"
);
self
.
videoModel
.
videoPath
=
createFilePath
(
file
,
file
.
name
);
// let videoPath = createFilePath(file,file.name)
doUpload
(
self
,
file
,
self
.
videoModel
.
videoPath
,
"preview4"
,
doUpload
(
self
,
file
,
self
.
videoModel
.
videoPath
,
"preview4"
,
"uploadProgress1"
,
""
).
then
(
function
(
result
)
{
console
.
log
(
'成功result'
,
result
);
""
).
then
(
function
(
result
)
{
console
.
log
(
"成功result"
,
result
);
self
.
videoModel
.
videoFullPath
=
result
.
fullPath
;
// self.model.size = result.size;
// self.model.ext = result.ext;
// self.model.name = self.model.videoPath;
let
fileItem
=
{
goodsImgUrl
:
result
.
fullPath
,
uid
:
''
,
uid
:
""
,
imageUrl
:
result
.
fullPath
,
imageType
:
9
,
goodsId
:
self
.
formData
.
goodsId
,
id
:
null
,
deleteFlag
:
0
}
deleteFlag
:
0
,
};
self
.
videoList
.
push
(
fileItem
);
self
.
$message
.
success
(
'上传成功'
);
console
.
log
(
'sumFile'
,
self
.
sumFile
,
'videoList'
,
self
.
videoList
);
self
.
$message
.
success
(
"上传成功"
);
console
.
log
(
"sumFile"
,
self
.
sumFile
,
"videoList"
,
self
.
videoList
);
return
false
;
});
},
},
}
};
</
script
>
<
style
lang=
"scss"
>
@import
"./create-good-new.scss"
;
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录