This commit is contained in:
faiz 2024-04-05 18:19:33 +08:00
parent cb8ac0ba88
commit afebda12a2
8 changed files with 767 additions and 206 deletions

View File

@ -1,5 +1,6 @@
module.exports = {
presets: [
'@vue/app'
]
],
plugins: ["@babel/plugin-proposal-optional-chaining"]
}

View File

@ -85,6 +85,7 @@
},
"devDependencies": {
"@babel/core": "7.0.0",
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
"@babel/register": "7.0.0",
"@vue/cli-plugin-babel": "3.5.3",
"@vue/cli-plugin-eslint": "^3.9.1",

View File

@ -15,7 +15,20 @@ import request from './request'
export function menuRoleApi(data) {
return request.get(`system/role/lst`, data)
}
/**
* @description 产品服务费 -- 列表
* @param {Object} param params {Object} 传值参数
*/
export function serviceCodeApi() {
return request.get(`service/code`)
}
/**
* @description 商品上架费用 -- 列表
* @param {Object} param params {Object} 传值参数
*/
export function goodsCodeApi() {
return request.get(`goods/code`)
}
/**
* @description 身份管理 -- 新增
* @param {Object} param params {Object} 传值参数
@ -154,7 +167,7 @@ export function marginRefund() {
* @param {Object} param params {Object} 传值参数
*/
export function marginRefundApply(data) {
return request.post('financial/refund/margin_apply',data)
return request.post('financial/refund/margin_apply', data)
}
/**
* @description 一号通 -- 用户信息
@ -225,31 +238,31 @@ export function updatedumpDataApi(data) {
/**
* @description 打印机配置 -- 添加
*/
export function printerAddApi() {
export function printerAddApi() {
return request.get('store/printer/create/form')
}
/**
* @description 打印机配置 -- 列表
*/
export function printerLstApi(data) {
export function printerLstApi(data) {
return request.get('store/printer/lst', data)
}
/**
* @description 打印机 -- 是否开启
*/
export function printerStatusApi(id, status) {
export function printerStatusApi(id, status) {
return request.post(`store/printer/status/${id}`, status)
}
/**
* @description 打印机配置 -- 编辑
*/
export function printerUpdateApi(id) {
export function printerUpdateApi(id) {
return request.get(`store/printer/update/${id}/form`)
}
/**
* @description 打印机配置 -- 删除
*/
export function printerDeleteApi(id) {
export function printerDeleteApi(id) {
return request.delete(`store/printer/delete/${id}`)
}
/**
@ -273,14 +286,14 @@ export function scanUploadSave(scan_token, data) {
/**
* @description 扫码上传提交数据
*/
export function fileUpload(id,field) {
return request.post(`upload/image/${id}/file`,field);
export function fileUpload(id, field) {
return request.post(`upload/image/${id}/file`, field);
}
/**
* @description 网络上传提交数据
*/
export function onlineUpload(data) {
return request.post(`system/attachment/online_upload`,data);
return request.post(`system/attachment/online_upload`, data);
}
/**
* @description 添加账户--表单
@ -328,7 +341,7 @@ export function resetSccretKey(id) {
* @description 系统表单--添加
*/
export function systemForm(data) {
return request.post(`store/form/create`,data);
return request.post(`store/form/create`, data);
}
/**
* @description 系统表单--详情
@ -339,14 +352,14 @@ export function systemFormInfo(id) {
/**
* @description 系统表单--编辑
*/
export function systemFormUpdate(id,data) {
return request.post(`store/form/update/${id}`,data);
export function systemFormUpdate(id, data) {
return request.post(`store/form/update/${id}`, data);
}
/**
* @description 系统表单--列表
*/
export function systemFormList(data) {
return request.get(`store/form/lst`,data);
return request.get(`store/form/lst`, data);
}
/**
* @description 系统表单--删除
@ -358,6 +371,6 @@ export function formDeleteApi(id) {
/**
* @description 系统表单--详情
*/
export function formDetailList(id,data) {
return request.get(`store/form/user_lst/${id}`,data);
export function formDetailList(id, data) {
return request.get(`store/form/user_lst/${id}`, data);
}

View File

@ -278,10 +278,10 @@
<el-form-item label="选择类型:" prop="delivery_type">
<el-radio-group v-model="shipment.delivery_type" @change="changeSend">
<el-radio v-if="!isBatch && tableFrom.order_type != 2 && orderType != 1" :label="1">手动发货</el-radio>
<el-radio :label="3" class="radio"> {{ orderType == 1 ? '虚拟发货' : '无需物流' }}</el-radio>
<!-- <el-radio :label="3" class="radio"> {{ orderType == 1 ? '虚拟发货' : '无需物流' }}</el-radio>
<el-radio v-if="isDump==1 && tableFrom.order_type != 2 && orderType !=1 && !isBatch" :label="4" class="radio">电子面单打印</el-radio>
<el-radio v-if="tableFrom.order_type != 2 && orderType !=1" :label="2">自己配送</el-radio>
<el-radio v-if="tableFrom.order_type != 2 && orderType !=1 && !isBatch" :label="5">同城配送</el-radio>
<el-radio v-if="tableFrom.order_type != 2 && orderType !=1 && !isBatch" :label="5">同城配送</el-radio> -->
</el-radio-group>
</el-form-item>
<el-form-item v-if="shipment.delivery_type == 5 && tableFrom.order_type != 2 && orderType !=1" label="选择发货点:" prop="station_id">

View File

@ -65,6 +65,16 @@
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否为惠美乡村:">
<el-radio-group
v-model="formValidate.is_huimei"
>
<el-radio :label="1" class="radio"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="平台商品分类:" prop="cate_id">
<el-cascader
@ -281,7 +291,7 @@
</el-row>
<!-- 资质详情 -->
<el-row v-if="currentTab == '2'" :gutter="24">
<el-col :span="24">
<el-col :span="24" v-if="formValidate.qualification">
<el-form-item label="品牌商标名称:">
<el-input
v-model="formValidate.qualification.brands_name"
@ -317,15 +327,39 @@
<el-col :span="24">
<el-form-item label="营业执照:" prop="qualification.businessList">
<el-upload
ref="businessList"
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="handleRemoves"
:on-remove="onRemoveHandler"
:on-success="handleSuccess"
:before-upload="beforeUpload"
multiple
list-type="picture-card"
:file-list="formValidate.qualification.businessList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.url"
:ref="file.uid"
:preview-src-list="[file.url]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'businessList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -335,14 +369,36 @@
<el-form-item label="许可证:" prop="qualification.licenceList">
<el-upload
class="upload-demo"
ref="licenceList"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="licenRemoves"
:on-success="licenSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.licenceList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'licenceList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -355,12 +411,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="trademarkRemoves"
:on-success="trademarkSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.trademarkList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'trademarkList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -372,12 +449,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="authorizedRemoves"
:on-success="authorizedSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.authorizedList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'authorizedList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -390,12 +488,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="commodityRemoves"
:on-success="commoditySuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.commodityList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'commodityList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -407,12 +526,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="otherRemoves"
:on-success="otherSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.otherList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'commodityList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -437,12 +577,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="importHandleRemoves"
:on-success="importHandleSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.importBusinessList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'importBusinessList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -455,12 +616,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="importAuthorizedRemoves"
:on-success="importAuthorizedSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.importAuthorizedList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'importAuthorizedList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -473,12 +655,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="customsRemoves"
:on-success="customsSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.customsList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'customsList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -490,12 +693,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="packingRemoves"
:on-success="packingSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.packingList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'packingList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -507,12 +731,33 @@
class="upload-demo"
:action="filePdf"
:headers="pdfHeaders"
:on-remove="importOtherRemoves"
:on-success="importOtherSuccess"
:before-upload="beforeUpload"
list-type="picture-card"
:file-list="formValidate.qualification.importOtherList"
>
<div slot="file" slot-scope="{ file }" class="el_upload_preview_list">
<div v-if="['application/pdf'].includes(file.type)" class="pdfContainer">
{{ file.name }}
</div>
<!-- 图片预览 -->
<el-image
v-if="['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].includes(file.type) && file.response"
:id="'image' + file.uid"
class="el-upload-list__item-thumbnail"
:src="file.response.data.src"
:ref="file.uid"
:preview-src-list="[file.response.data.src]"
/>
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="onRemoveHandler(file,'importOtherList')">
<i class="el-icon-delete" />
</span>
</span>
</div>
<el-button size="small" type="primary">点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传图片和PDF文件</div> -->
</el-upload>
@ -877,7 +1122,7 @@
class="upLoadPicBox"
@click="modalPicTap('1', 'dan', 'pi')"
>
<div v-if="formValidate.image" class="pictrue tabPic">
<div v-if="scope.row.image" class="pictrue tabPic">
<img :src="scope.row.image">
</div>
<div v-else class="upLoad tabPic">
@ -1432,7 +1677,7 @@
</el-form-item>
</el-col>
</el-col>
<el-col :span="24">
<!-- <el-col :span="24">
<el-form-item label="平台保障服务:">
<div class="acea-row">
<el-select
@ -1470,8 +1715,8 @@
@change="getSpecsList"
/>
</el-form-item>
</el-col>
<el-col :span="16">
</el-col> -->
<!-- <el-col :span="16">
<el-form-item>
<el-table
ref="tableParameter"
@ -1544,7 +1789,7 @@
@click="addSpecs"
>添加参数</el-button>
</el-form-item>
</el-col>
</el-col> -->
<!-- <el-col v-if="formValidate.type == 1" :span="24">
<el-form-item label="自定义留言:">
<el-radio-group v-model="customBtn" @change="customMessBtn">
@ -1601,7 +1846,7 @@
</div>
</el-form-item>
</el-col> -->
<el-col :span="24">
<!-- <el-col :span="24">
<el-form-item label="关联系统表单:">
<el-select
v-model="formValidate.mer_form_id"
@ -1620,7 +1865,7 @@
</el-select>
<div class="explanation">添加系统表单后商品不可加入购物车添加系统表单请前往装修>系统表单</div>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="24">
<el-form-item label="商品提报备注:">
<el-input
@ -1832,6 +2077,7 @@ const defaultObj = {
product_type: 0,
qualification_type: 0,
remark: '',
is_huimei:1,
qualification: {
production_name: '',
businessList: [],
@ -2105,9 +2351,9 @@ export default {
previewKey: '',
deliveryType: [],
virtual: [
{ tit: '普通商品', id: 0, tit2: '物流发货' }
// { tit: '', id: 1, tit2: '' },
// { tit: '/', id: 2, tit2: '' }
{ tit: '品', id: 0, tit2: '物流发货' },
{ tit: '日化', id: 1, tit2: '物流发货' },
{ tit: '其他', id: 2, tit2: '物流发货' }
],
customBtn: 0, //
//
@ -2238,6 +2484,7 @@ export default {
deep: true
},
currentTab(newVal) {
// this.businessList = this.formValidate.qualification.businessList
if (newVal == 6) {
this.$nextTick(e => {
this.setSort()
@ -2307,148 +2554,78 @@ export default {
console.log(this.importBusinessList);
this.$refs[name].clearValidate()
},
beforeUpload(file) {
beforeUpload(file,fileList) {
if (['application/pdf', 'image/jpeg', 'image/png', 'image/jpg', 'image/gif'].indexOf(file.type) == -1) {
this.$message.error('只能上传图片和PDF文件')
return false
}
},
handleRemoves(file) {
handlePictureCardPreview(file) {
console.log(file);
if (file.url) {
this.formValidate.qualification.businessList = this.formValidate.qualification.businessList.filter(res => {
return res.url !== file.url
// pdf
if (['application/pdf'].includes(file.type)) {
window.open(file.response.data.src)
return
}
// pdf
this.$refs[file.uid].clickHandler();
},
//
onRemoveHandler(file, name) {
// if (fileList) return
const { uploadFiles } = this.$refs[name]
uploadFiles.splice(
uploadFiles.findIndex((item) => item.uid === file.uid),
1
)
this.formValidate.qualification[name].splice(
this.formValidate.qualification[name].findIndex(
(item) => item.url !== file.url
),
1
)
},
initSuccess(name,res,fileList){
if (res.status == 200) {
if (fileList.every(item => item.status == "success")) {
fileList.map(item => {
item.response && this.formValidate.qualification[name].push({ ...item,url: res.data.src,type:item.raw.type});
})
}
},
handleSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.businessList.push({ name: file.name, url: res.data.src })
}
console.log(this.formValidate.qualification.businessList)
},
licenRemoves(file) {
if (file.url) {
this.formValidate.qualification.licenceList = this.formValidate.qualification.licenceList.filter(res => {
return res.url !== file.url
})
}
},
licenSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.licenceList.push({ name: file.name, url: res.data.src })
}
handleSuccess(res, file,fileList) {
this.initSuccess('businessList',res,fileList)
},
trademarkRemoves(file) {
if (file.url) {
this.formValidate.qualification.trademarkList = this.formValidate.qualification.trademarkList.filter(res => {
return res.url !== file.url
})
}
licenSuccess(res, file,fileList) {
this.initSuccess('licenceList',res,fileList)
},
trademarkSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.trademarkList.push({ name: file.name, url: res.data.src })
}
trademarkSuccess(res, file,fileList) {
this.initSuccess('trademarkList',res,fileList)
},
authorizedRemoves(file) {
if (file.url) {
this.formValidate.qualification.authorizedList = this.formValidate.qualification.authorizedList.filter(res => {
return res.url !== file.url
})
}
authorizedSuccess(res, file,fileList) {
this.initSuccess('authorizedList',res,fileList)
},
authorizedSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.authorizedList.push({ name: file.name, url: res.data.src })
}
commoditySuccess(res, file,fileList) {
this.initSuccess('commodityList',res,fileList)
},
commodityRemoves(file) {
if (file.url) {
this.formValidate.qualification.commodityList = this.formValidate.qualification.commodityList.filter(res => {
return res.url !== file.url
})
}
otherSuccess(res, file,fileList) {
this.initSuccess('otherList',res,fileList)
},
commoditySuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.commodityList.push({ name: file.name, url: res.data.src })
}
importHandleSuccess(res, file,fileList) {
this.initSuccess('importBusinessList',res,fileList)
},
otherRemoves(file) {
if (file.url) {
this.formValidate.qualification.otherList = this.formValidate.qualification.otherList.filter(res => {
return res.url !== file.url
})
}
importAuthorizedSuccess(res, file,fileList) {
this.initSuccess('importAuthorizedList',res,fileList)
},
otherSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.otherList.push({ name: file.name, url: res.data.src })
}
customsSuccess(res, file,fileList) {
this.initSuccess('customsList',res,fileList)
},
importHandleRemoves(file) {
console.log(file);
if (file.url) {
this.formValidate.qualification.importBusinessList = this.formValidate.qualification.importBusinessList.filter(res => {
return res.url !== file.url
})
}
packingSuccess(res, file,fileList) {
this.initSuccess('packingList',res,fileList)
},
importHandleSuccess(res, file) {
console.log(file);
console.log(res);
if (res.status === 200) {
this.formValidate.qualification.importBusinessList.push({ name: file.name, url: res.data.src })
}
},
importAuthorizedRemoves(file) {
if (file.url) {
this.formValidate.qualification.importAuthorizedList = this.formValidate.qualification.importAuthorizedList.filter(res => {
return res.url !== file.url
})
}
},
importAuthorizedSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.importAuthorizedList.push({ name: file.name, url: res.data.src })
}
},
customsSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.customsList.push({ name: file.name, url: res.data.src })
}
},
customsRemoves(file) {
if (file.url) {
this.formValidate.qualification.customsList = this.formValidate.qualification.customsList.filter(res => {
return res.url !== file.url
})
}
},
packingSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.packingList.push({ name: file.name, url: res.data.src })
}
},
packingRemoves(file) {
if (file.url) {
this.formValidate.qualification.packingList = this.formValidate.qualification.packingList.filter(res => {
return res.url !== file.url
})
}
},
importOtherSuccess(res, file) {
if (res.status === 200) {
this.formValidate.qualification.importOtherList.push({ name: file.name, url: res.data.src })
}
},
importOtherRemoves(file) {
if (file.url) {
this.formValidate.qualification.importOtherList = this.formValidate.qualification.importOtherList.filter(res => {
return res.url !== file.url
})
}
importOtherSuccess(res, file,fileList) {
this.initSuccess('importOtherList',res,fileList)
},
setSort() {
// reftableref
@ -3397,6 +3574,7 @@ export default {
svip_price_type: info.svip_price_type || 0,
qualification:info.qualification
};
console.log(info.qualification);
if (info.svip_price_type != 0 && info.mer_svip_status)
this.attrVal = {
price: null,
@ -3692,7 +3870,7 @@ export default {
}
.upload-demo{
/deep/ .el-upload-list__item{
width:20%
width:10%
}
// /deep/ .el-upload{
// border: 1px dotted #0fc6c2;
@ -3701,6 +3879,49 @@ export default {
// line-height: 50px;
// }
}
::v-deep .el-upload--picture-card{
width: auto;
line-height: normal;
height: unset;
}
.noData {
padding: 10px 0;
text-align: center;
color: #ccc;
}
.el_upload_tip {
margin-top: 15px;
line-height: 20px;
text-align: left;
color: red;
}
.el_upload_preview_list {
height: 100%;
// el-uplaodpdf
.pdfContainer {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
}
.blue-theme {
.dialog_section_title {
border-top: 1px solid #202936;
border-bottom: 1px solid #202936;
}
}
.night-theme {
.dialog_section_title {
border-top: 1px solid #202936;
border-bottom: 1px solid #202936;
}
}
::v-deep .specsList th{
line-height: 20px!important;

View File

@ -189,6 +189,7 @@
<div><span class="tags_name" :class="'name'+scope.row.spec_type">{{ scope.row.spec_type==0 ? '[单规格]' : '[多规格]' }}</span>{{ scope.row.store_name || '-' }}</div>
</template>
</el-table-column>
<el-table-column prop="remark" label="商品备注" min-width="70" />
<el-table-column prop="price" label="商品售价" min-width="80" />
<el-table-column prop="sales" label="销量" min-width="70" />
<el-table-column prop="stock" label="库存" min-width="70" />

View File

@ -47,11 +47,23 @@
<ul class="list">
<li class="item item100">
<div class="item-title">封面图</div>
<img :src="productData.image" style="width:40px;height:40px;margin-right:12px;"/>
<el-image
style="width: 60px; height: 60px"
:src="productData.image"
:preview-src-list="[productData.image]"
/>
<!-- <img :src="productData.image" style="width:40px;height:40px;margin-right:12px;"/> -->
</li>
<li class="item item100">
<div class="item-title">轮播图</div>
<img v-for="(pic,idx) in productData.slider_image" :key="idx" :src="pic" style="width:40px;height:40px;margin-right:12px;"/>
<el-image
v-for="(pic,idx) in productData.slider_image"
style="width: 60px; height: 60px"
:key="idx"
:src="pic"
:preview-src-list="productData.slider_image"
/>
<!-- <img v-for="(pic,idx) in productData.slider_image" :key="idx" :src="pic" style="width:40px;height:40px;margin-right:12px;"/> -->
</li>
</ul>
<li class="item item100">
@ -140,7 +152,13 @@
<el-table :data="OneattrValue" border class="tabNumWidth ones" size="mini">
<el-table-column align="center" label="图片" min-width="80">
<template slot-scope="scope">
<div class="pictrue tabPic"><img :src="scope.row.image" style="width: 36px; height: 36px; border-radius: 4px;"></div>
<div class="pictrue tabPic">
<el-image
style="width: 60px; height: 60px"
:src="scope.row.image"
:preview-src-list="[scope.row.image]"
/>
</div>
</template>
</el-table-column>
<el-table-column v-for="(item,iii) in attrValue" :key="iii" :label="formThead[iii].title" align="center" min-width="120">
@ -273,16 +291,20 @@
</ul>
</div>
</el-tab-pane>
<!-- <el-tab-pane label="审核回复栏" name="audit">
<el-tab-pane label="审核回复栏" name="audit">
<div class="section">
<ul class="list">
<li class="item">
<div class="item-title">审核拒绝原因</div>
<div class="value">{{productData.refusal || '-'}}</div>
</li>
<li class="item item100">
<div class="item-title">审核图</div>
<el-image :src="productData.status_img" style="width:40px;height:40px;margin-right:12px;" :preview-src-list="[productData.status_img]" />
</li>
</ul>
</div>
</el-tab-pane> -->
</el-tab-pane>
<el-tab-pane label="其它信息" name="others">
<div class="section">
<ul class="list">
@ -307,23 +329,10 @@
</div>
</div>
</li>
<li class="item">
<!-- <li class="item">
<div class="item-title">审核拒绝原因</div>
<div class="value">{{productData.refusal || '-'}}</div>
</li>
</ul>
</div>
<div class="section">
<ul class="list">
<!-- <li class="item item100">
<div class="item-title">审核图</div>
<img :src="productData.image" style="width:40px;height:40px;margin-right:12px;"/>
</li> -->
<li class="item item100">
<div class="item-title">审核图</div>
<el-image :src="productData.status_img" style="width:40px;height:40px;margin-right:12px;" :preview-src-list="productData.status_img" />
<!-- <img v-for="(pic,idx) in productData.slider_image" :key="idx" :src="pic" style="width:40px;height:40px;margin-right:12px;"/> -->
</li>
</ul>
</div>
<div class="section">
@ -394,6 +403,200 @@
</li>
</ul>
</div>
</el-tab-pane>
<el-tab-pane label="资质信息" name="aptitude">
<span class="sp">商品名称
<el-radio-group v-model="qualification.commodity_type">
<el-radio :label="0" class="radio" :disabled="qualification.commodity_type==1">国产</el-radio>
<el-radio :label="1" :disabled="qualification.commodity_type==0">进口</el-radio>
</el-radio-group>
</span>
<div v-if="qualification.commodity_type == 0">
<span class="sp">生产企业名称{{ qualification.production_name }}</span>
<span class="upload">
<div class="upload_left">生产营业执照</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.businessList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">商标注册证</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.trademarkList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">销售授权及其他</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.authorizedList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">商品检测报告</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.commodityList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">其他资质</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.otherList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
</div>
<div v-if="qualification.commodity_type == 1">
<span class="sp">进口/企业境内总代企业名称: {{ qualification.import_name }}</span>
<span class="upload">
<div class="upload_left">生产营业执照</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.importBusinessList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">销售授权及其他</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.importAuthorizedList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">海关检验检疫证书及报关单</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.customsList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">产品外包装实物图</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.packingList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
<span class="upload">
<div class="upload_left">其他资质</div>
<div class="upload_right">
<div
v-for="(item,index) in qualification.importOtherList"
:key="index"
>
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
<div class="pictrue" v-else>
<el-image
style="width: 60px; height: 60px;"
:src="item.url"
:preview-src-list="[item.url]"
/>
</div>
</div>
</div>
</span>
</div>
</el-tab-pane>
<el-tab-pane label="商品操作记录" name="records">
<div class="section">
@ -567,6 +770,23 @@ export default {
productId: '',
direction: 'rtl',
activeName: 'basic',
qualification:{
production_name: '',
businessList: [],
licenceList: [],
trademarkList: [],
authorizedList: [],
commodityList: [],
otherList: [],
importBusinessList: [],
importAuthorizedList: [],
customsList: [],
packingList: [],
importOtherList: [],
commodity_type: 0,
brands_name: '',
import_name: ''
},
productData: {},
formThead: Object.assign({}, objTitle),
manyTabDate: {},
@ -607,6 +827,11 @@ export default {
filters: {
},
methods: {
getType(val){
var regex = /(?:\.([^.]+))?$/;
let suffix = regex.exec(val.url)[1]
return suffix == 'pdf'
},
handleClose() {
this.activeName = 'basic';
this.$emit('closeDrawer');
@ -617,6 +842,7 @@ export default {
productDetailApi(id).then(res => {
this.loading = false;
this.productData = res.data
this.qualification = res.data.qualification
this.mer_svip_status = res.data.mer_svip_status
this.svip_type = res.data.svip_price_type
if (this.productData.spec_type === 0) {
@ -697,6 +923,40 @@ export default {
};
</script>
<style lang="scss" scoped>
.sp {
display: block;
// width: 33%;
margin-bottom: 20px;
}
.upload{
display: flex;
flex-direction: row;
// align-content: center;
align-items: center;
height: 60px;
// line-height: 60px;
margin-bottom: 20px;
&_right{
display: flex;
height: 60px;
}
&_left{
width: 115px;
}
.txt{
width: 60px;
height: 60px;
line-height: 60px;
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
border: 1px solid #DCDFE6;
border-radius: 4px;
margin-right: 10px;
color: blue;
}
}
.head {
padding: 20px 35px;
.full {

View File

@ -57,16 +57,52 @@
<div v-if="merData.is_margin == 1">
<span class="basic-label">店铺保证金</span>
<span class="font_red">{{ merData.margin }}</span>
<div class="margin_count" @mouseenter="getCode()">
<div class="margin_count" @mouseenter="getCode('all')">
<el-button type="text" size="small" class="mr10 pay_btn">去支付保证金</el-button>
<!--支付二维码-->
<div class="erweima">
<div class="pay_title">支付保证金</div>
<div>
<vue-qr class="bicode" :text="goodsQrcode" :size="310" />
<div class="pay_type">请使用微信扫码支付</div>
<div class="pay_price">{{ marginPrice }}</div>
<div class="pay_time">支付码过期时间 {{ qrEndTime }}</div>
</div>
</div>
</div>
</div>
<!--产品服务费-->
<div v-if="merData.is_service == 1">
<span class="basic-label">产品服务费</span>
<span class="font_red">{{ merData.service_cost }}</span>
<div class="margin_count" @mouseenter="getCode('service')">
<el-button type="text" size="small" class="mr10 pay_btn">去支付产品服务费</el-button>
<!--支付二维码-->
<div class="erweima">
<div class="pay_title">支付保证金</div>
<div>
<vue-qr class="bicode" :text="serviceQrCode" :size="310" />
<div class="pay_type">请使用微信扫码支付</div>
<div class="pay_price">{{ servicePrice }}</div>
<div class="pay_time">支付码过期时间 {{ serviceQrEndTime }}</div>
</div>
</div>
</div>
</div>
<!--商品上架费-->
<div v-if="merData.is_goods == 1">
<span class="basic-label">上架费</span>
<span class="font_red">{{ merData.goods_cost }}</span>
<div class="margin_count" @mouseenter="getCode('goods')">
<el-button type="text" size="small" class="mr10 pay_btn">去支付上架费</el-button>
<!--支付二维码-->
<div class="erweima">
<div class="pay_title">支付保证金</div>
<div>
<vue-qr class="bicode" :text="qrCode" :size="310" />
<div class="pay_type">请使用微信扫码支付</div>
<div class="pay_price">{{ marginPrice }}</div>
<div class="pay_time">支付码过期时间 {{ qrEndTime }}</div>
<div class="pay_price">{{ goodsPrice }}</div>
<div class="pay_time">支付码过期时间 {{ goodsQrEndTime }}</div>
</div>
</div>
</div>
@ -89,7 +125,7 @@
</div>
</div>
<div v-if="merData.marginStatus" style="display: inline-block;">
<div class="margin_count" @mouseenter="getCode()">
<div class="margin_count" @mouseenter="getCode('all')">
<el-button type="text" size="small" class="mr10 pay_btn">去补缴保证金</el-button>
<!--支付二维码-->
<div class="erweima">
@ -439,7 +475,7 @@
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import { storeGetInfoApi, marginCode, marginMakeCode, marginRecordLst, marginRefund, marginRefundApply } from '@/api/setting'
import { serviceCodeApi,goodsCodeApi,storeGetInfoApi, marginCode, marginMakeCode, marginRecordLst, marginRefund, marginRefundApply } from '@/api/setting'
import { getBaseInfo, merchantUpdate } from '@/api/user.js'
import Maps from '@/components/map/map.vue'
@ -526,7 +562,11 @@ export default {
loading: false,
roterPre: roterPre,
qrCode: '',
serviceQrCode:'',
goodsQrcode:'',
qrEndTime: '',
serviceQrEndTime: '',
goodsQrEndTime: '',
supplyPay: false,
goPay: false,
tableFrom: {
@ -540,6 +580,8 @@ export default {
value1: '',
value2: '',
marginPrice: 0,
servicePrice:0,
goodsPrice:0,
merData: {
delivery_way: [],
mer_take_name: '',
@ -706,7 +748,7 @@ export default {
} else {
that.uploadedQualifications = []
}
if (that.merData.is_margin == 1)(this.getCode())
if (that.merData.is_margin == 1)(this.getCode('all'))
})
},
// 线
@ -781,10 +823,32 @@ export default {
}
},
//
getCode() {
getCode(type) {
const that = this
if (this.merData.marginStatus) {
marginMakeCode()
//
if(type == 'service' && this.merData.is_service){
return serviceCodeApi().then((res) => {
console.log(res);
that.serviceQrCode = res.data.config
that.serviceQrEndTime = res.data.endtime
that.servicePrice = res.data.price
}).catch(function(res) {
that.$message.error(res.message)
})
}
//
if(type == 'goods' && this.merData.is_goods){
return goodsCodeApi().then((res) => {
console.log(res);
that.goodsQrCode = res.data.config
that.goodsQrEndTime = res.data.endtime
that.goodsPrice = res.data.price
}).catch(function(res) {
that.$message.error(res.message)
})
}
if (type =='all' && this.merData.marginStatus) {
return marginMakeCode()
.then((res) => {
that.qrCode = res.data.config
that.qrEndTime = res.data.endtime
@ -794,7 +858,7 @@ export default {
that.$message.error(res.message)
})
} else {
marginCode()
return marginCode()
.then((res) => {
that.qrCode = res.data.config
that.qrEndTime = res.data.endtime