Compare commits
10 Commits
05848781a3
...
c7ce2d2eff
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c7ce2d2eff | ||
![]() |
edb73664ea | ||
![]() |
ca73ba85bc | ||
![]() |
eed7744d30 | ||
![]() |
10c5e16375 | ||
![]() |
0af6c362b2 | ||
![]() |
59a10c0c9e | ||
![]() |
28b7beece6 | ||
![]() |
59566ffc61 | ||
![]() |
f5d5f41788 |
@ -2,9 +2,7 @@
|
||||
ENV = 'development'
|
||||
|
||||
# base api
|
||||
VUE_APP_BASE_API = 'https://syy.xunyingcloud.cn'
|
||||
#VUE_APP_BASE_API = 'http://localhost:20010/'
|
||||
|
||||
VUE_APP_BASE_API = 'http://127.0.0.1:20010'
|
||||
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
|
||||
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
|
||||
# It only does one thing by converting all import() to require().
|
||||
|
@ -2,5 +2,5 @@
|
||||
ENV = 'production'
|
||||
|
||||
# base api
|
||||
VUE_APP_BASE_API = 'https://syy.xunyingcloud.cn'
|
||||
VUE_APP_BASE_API = 'https://0511syy.cn'
|
||||
|
||||
|
1
.node-version
Normal file
1
.node-version
Normal file
@ -0,0 +1 @@
|
||||
v14.21.3
|
@ -169,7 +169,7 @@ utils 自定义工具js 独立命名,一般不用新建文件夹
|
||||
│ │ └──SvgIcon # svg图标
|
||||
│ │ └──Tinymce # 富文本编辑器
|
||||
│ │ └──ThemePicker # 右侧设置按钮,设置组题颜色
|
||||
│ │ └──templatesFrom # 运费模板
|
||||
│ │ └──templatesFrom # 配送模板
|
||||
│ │ └──uploadPicture # 上传图片组件
|
||||
│ │ └──Upload # 上传文件组件
|
||||
│ │ └──UploadExcel # 下载Excel
|
||||
@ -211,7 +211,7 @@ utils 自定义工具js 独立命名,一般不用新建文件夹
|
||||
│ │ └──cityList # 城市数据
|
||||
│ │ └──companyList # 物流公司
|
||||
│ │ └──config # 物流配置
|
||||
│ │ └──shippingTemplates # 运费模板
|
||||
│ │ └──shippingTemplates # 配送模板
|
||||
│ │ └──setting # 系统设置
|
||||
│ │ └──systemStore # 提货点设置
|
||||
│ │ └──appSetting # 应用 小程序 公众号设置
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "crmeb-java-webpc-admin",
|
||||
"version": "4.2.1",
|
||||
"description": "水月雨后台",
|
||||
"description": "食材",
|
||||
"author": "CRMEB",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve --open",
|
||||
"dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
|
@ -104,3 +104,27 @@ export function userActivityPlaceListApi(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ebactivity删除
|
||||
* @param data
|
||||
*/
|
||||
export function placeDeleteApi(data) {
|
||||
return request({
|
||||
url: `/admin/place/records/delete`,
|
||||
method: 'get',
|
||||
params:data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* ebactivity删除预约记录
|
||||
* @param data
|
||||
*/
|
||||
export function activityRecordDeleteApi(data) {
|
||||
return request({
|
||||
url: `/admin/activity/records/delete`,
|
||||
method: 'get',
|
||||
params:data
|
||||
})
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ export function expressDelete(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 物流运费模板列表
|
||||
// 物流配送模板列表
|
||||
export function shippingTemplatesList(data) {
|
||||
return request({
|
||||
url: '/admin/express/shipping/templates/list',
|
||||
@ -108,7 +108,7 @@ export function shippingTemplatesList(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 物流运费模板详情
|
||||
// 物流配送模板详情
|
||||
export function templateDetailApi(data) {
|
||||
return request({
|
||||
url: '/admin/express/shipping/templates/info',
|
||||
@ -117,7 +117,7 @@ export function templateDetailApi(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 物流运费模板包邮
|
||||
// 物流配送模板包邮
|
||||
export function shippingFree(data) {
|
||||
return request({
|
||||
url: '/admin/express/shipping/free/list',
|
||||
@ -126,7 +126,7 @@ export function shippingFree(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 物流运费模板不包邮
|
||||
// 物流配送模板不包邮
|
||||
export function shippingRegion(data) {
|
||||
return request({
|
||||
url: 'admin/express/shipping/region/list',
|
||||
@ -135,7 +135,7 @@ export function shippingRegion(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 物流运费模板新增
|
||||
// 物流配送模板新增
|
||||
export function shippingSave(data) {
|
||||
return request({
|
||||
url: 'admin/express/shipping/templates/save',
|
||||
@ -144,7 +144,7 @@ export function shippingSave(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 物流运费模板更新
|
||||
// 物流配送模板更新
|
||||
export function shippingUpdate(data, id) {
|
||||
return request({
|
||||
url: 'admin/express/shipping/templates/update',
|
||||
@ -154,7 +154,7 @@ export function shippingUpdate(data, id) {
|
||||
})
|
||||
}
|
||||
|
||||
// 物流运费模板删除
|
||||
// 物流配送模板删除
|
||||
export function shippingDetete(data) {
|
||||
return request({
|
||||
url: 'admin/express/shipping/templates/delete',
|
||||
|
@ -18,9 +18,9 @@ export function EbTeaPlantOrderCreateApi(data) {
|
||||
* ebteaplantorder更新
|
||||
* @param pram
|
||||
*/
|
||||
export function ebteaplantorderUpdateApi(data) {
|
||||
export function plantorderUpdateApi(data) {
|
||||
return request({
|
||||
url: 'autogencode/ebteaplantorder/update',
|
||||
url: `admin/teaPlant/updateOrderItem?itemId=${data.itemId}`,
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
@ -30,9 +30,9 @@ export function ebteaplantorderUpdateApi(data) {
|
||||
* ebteaplantorder详情
|
||||
* @param pram
|
||||
*/
|
||||
export function ebteaplantorderDetailApi(id) {
|
||||
export function plantorderDetailApi(id) {
|
||||
return request({
|
||||
url: `autogencode/ebteaplantorder/info/${id}`,
|
||||
url: `admin/plantorder/info/${id}`,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
@ -41,10 +41,11 @@ export function ebteaplantorderDetailApi(id) {
|
||||
* ebteaplantorder删除
|
||||
* @param pram
|
||||
*/
|
||||
export function ebteaplantorderDeleteApi(id) {
|
||||
export function plantorderDeleteApi(data) {
|
||||
return request({
|
||||
url: `autogencode/ebteaplantorder/delete/${id}`,
|
||||
method: 'get'
|
||||
url: `admin/teaPlant/delete`,
|
||||
method: 'get',
|
||||
params: data,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -326,7 +326,7 @@ export function productGetRuleApi() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 商品 -- 获取运费模板
|
||||
* @description 商品 -- 获取配送模板
|
||||
*/
|
||||
export function productGetTemplateApi() {
|
||||
return request({
|
||||
|
@ -88,7 +88,8 @@
|
||||
type="primary"
|
||||
class="mr15 mb20"
|
||||
@click="checkPics"
|
||||
>使用选中图片</el-button
|
||||
>使用选中图片
|
||||
</el-button
|
||||
>
|
||||
<div class="mb20">
|
||||
<el-tooltip
|
||||
@ -140,9 +141,7 @@
|
||||
:show-file-list="false"
|
||||
multiple
|
||||
>
|
||||
<el-button class="mr10" type="primary" v-if="pictureType"
|
||||
>上传图片</el-button
|
||||
>
|
||||
<el-button class="mr10" type="primary" v-if="pictureType">上传{{typeDate =='pic'?'图片':'视频'}}</el-button>
|
||||
</el-upload>
|
||||
<div>
|
||||
<el-button
|
||||
@ -150,7 +149,8 @@
|
||||
type="danger"
|
||||
@click.stop="editPicList('图片')"
|
||||
v-if="pictureType"
|
||||
>删除图片</el-button
|
||||
>删除{{typeDate =='pic'?'图片':'视频'}}
|
||||
</el-button
|
||||
>
|
||||
</div>
|
||||
<el-select
|
||||
@ -285,7 +285,8 @@
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handlerSubmit('editPram')"
|
||||
>确定</el-button
|
||||
>确定
|
||||
</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -306,7 +307,7 @@ import {
|
||||
fileImageApi,
|
||||
fileListApi,
|
||||
fileDeleteApi,
|
||||
attachmentMoveApi,
|
||||
attachmentMoveApi, fileFileApi,
|
||||
} from "@/api/systemSetting";
|
||||
import {getToken} from "@/utils/auth";
|
||||
import {checkPermi} from "@/utils/permission"; // 权限判断函数
|
||||
@ -559,16 +560,28 @@ export default {
|
||||
spinner: "el-icon-loading",
|
||||
background: "rgba(0, 0, 0, 0.7)",
|
||||
});
|
||||
|
||||
if (this.typeDate =='pic'){
|
||||
fileImageApi(formData, data)
|
||||
.then((res) => {
|
||||
loading.close();
|
||||
this.$message.success("上传成功");
|
||||
this.tableData.page = 1;
|
||||
this.getFileList();
|
||||
})
|
||||
.catch((res) => {
|
||||
}).catch((res) => {
|
||||
loading.close();
|
||||
});
|
||||
}else {
|
||||
fileFileApi(formData, data)
|
||||
.then((res) => {
|
||||
loading.close();
|
||||
this.$message.success("上传成功");
|
||||
this.tableData.page = 1;
|
||||
this.getFileList();
|
||||
}).catch((res) => {
|
||||
loading.close();
|
||||
});
|
||||
}
|
||||
},
|
||||
// 文件列表
|
||||
getFileList() {
|
||||
@ -729,26 +742,32 @@ export default {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.temp {
|
||||
height: 0;
|
||||
margin-bottom: 0;
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.selectTreeClass {
|
||||
background: #d5e8fc;
|
||||
}
|
||||
|
||||
.treeBox {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.upload-demo {
|
||||
display: inline-block !important;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.tree_w {
|
||||
padding: 20px 30px;
|
||||
}
|
||||
|
||||
.custom-tree-node {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
@ -758,6 +777,7 @@ export default {
|
||||
padding-right: 8px;
|
||||
color: #4386c6;
|
||||
}
|
||||
|
||||
.custom-tree-node-label {
|
||||
display: block;
|
||||
width: 125px;
|
||||
@ -765,32 +785,40 @@ export default {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.el-ic {
|
||||
display: none;
|
||||
|
||||
i,
|
||||
span {
|
||||
/*padding: 0 14px;*/
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.svg-icon {
|
||||
color: #4386c6;
|
||||
}
|
||||
}
|
||||
|
||||
.el-tree-node__content {
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.el-tree-node__expand-icon {
|
||||
color: #428bca;
|
||||
/*padding: 10px 10px 0px 10px !important;*/
|
||||
}
|
||||
|
||||
.el-tree-node__content:hover .el-ic {
|
||||
color: #428bca !important;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.el-tree-node__content:hover {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.el-tree--highlight-current
|
||||
.el-tree-node.is-current
|
||||
> .el-tree-node__content
|
||||
@ -799,63 +827,77 @@ export default {
|
||||
color: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/*background-color: #3998d9;*/
|
||||
.custom-tree-node {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.el-tree-node__expand-icon {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
.upload-container .image-preview .image-preview-wrapper img {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.el-dialog .el-collapse-item__wrap {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.spatial_img {
|
||||
.el-collapse-item__wrap {
|
||||
margin-bottom: 0;
|
||||
padding-top: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.upload-container .image-preview .image-preview-wrapper {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.upload-container .image-preview .image-preview-action {
|
||||
line-height: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
.trees-coadd {
|
||||
width: 100%;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
.scollhide {
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
padding: 10px 0 10px 0;
|
||||
box-sizing: border-box;
|
||||
|
||||
.trees {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.scollhide::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.conters {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
/*max-height: 296px;*/
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.conters:after {
|
||||
content: "";
|
||||
width: 410px !important;
|
||||
}
|
||||
|
||||
.gridPic {
|
||||
margin-right: 15px;
|
||||
margin-bottom: 10px;
|
||||
@ -863,16 +905,19 @@ export default {
|
||||
height: 110px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.num_badge {
|
||||
position: absolute;
|
||||
bottom: 6px;
|
||||
@ -888,31 +933,38 @@ export default {
|
||||
line-height: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.conter {
|
||||
width: 99%;
|
||||
height: 100%;
|
||||
|
||||
.bnt {
|
||||
width: 100%;
|
||||
padding: 0 13px 10px 7px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.pictrueList {
|
||||
/*padding-left: 15px;*/
|
||||
width: 100%;
|
||||
|
||||
el-image {
|
||||
width: 100%;
|
||||
border: 2px solid #fff;
|
||||
}
|
||||
|
||||
.on {
|
||||
border: 2px solid #1890FF;
|
||||
}
|
||||
}
|
||||
|
||||
.el-image {
|
||||
width: 110px;
|
||||
height: 110px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.imagesNo {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@ -920,6 +972,7 @@ export default {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin: 65px 0;
|
||||
|
||||
.imagesNo_sp {
|
||||
font-size: 13px;
|
||||
color: #dbdbdb;
|
||||
@ -927,9 +980,11 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.abs_video {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
|
@ -146,7 +146,7 @@ const operationRouter = {
|
||||
path: 'freightSet',
|
||||
component: () => import('@/views/systemSetting/deliverGoods/freightSet'),
|
||||
name: 'freightSet',
|
||||
meta: { title: '运费模板', noCache: true }
|
||||
meta: { title: '配送模板', noCache: true }
|
||||
},
|
||||
]
|
||||
},
|
||||
|
@ -32,10 +32,9 @@
|
||||
<el-form-item label="视频简介" prop="synopsis">
|
||||
<el-input v-model="dataForm.synopsis" placeholder="视频简介"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="详细内容" prop="content">
|
||||
<Tinymce v-model="dataForm.content"></Tinymce>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="详细内容" prop="content">-->
|
||||
<!-- <Tinymce v-model="dataForm.content"></Tinymce>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="关联商品" prop="productId">
|
||||
<div class="acea-row">
|
||||
<template v-if="checked.length">
|
||||
|
@ -8,7 +8,9 @@
|
||||
<el-radio-group v-model="tableFrom.dateLimit" type="button" class="mr20" size="small" @change="selectChange(tableFrom.dateLimit)">
|
||||
<el-radio-button v-for="(item,i) in fromList.fromTxt" :key="i" :label="item.val">{{ item.text }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker v-model="timeVal" value-format="yyyy-MM-dd" format="yyyy-MM-dd" size="small" type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 250px;" @change="onchangeTime" />
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
value-format="yyyy-MM-dd" format="yyyy-MM-dd" size="small" type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 250px;" @change="onchangeTime" />
|
||||
</el-form-item>
|
||||
<el-form-item label="提现状态:">
|
||||
<el-radio-group v-model="tableFrom.status" type="button" size="small" @change="getList(1)" clearable>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-if="dialogVisible"
|
||||
title="运费模板"
|
||||
title="配送模板"
|
||||
:visible.sync="dialogVisible"
|
||||
width="1000px"
|
||||
:before-close="handleClose"
|
||||
@ -15,9 +15,10 @@
|
||||
<el-radio :label="1">按件数</el-radio>
|
||||
<el-radio :label="2">按重量</el-radio>
|
||||
<el-radio :label="3">按体积</el-radio>
|
||||
<el-radio :label="4">按距离</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="配送区域及运费" prop="region">
|
||||
<el-form-item label="配送区域及费用" prop="region">
|
||||
<el-table v-loading="listLoading" :data="ruleForm.region" border fit highlight-current-row style="width: 100%" size="mini" class="tempBox">
|
||||
<el-table-column align="center" label="可配送区域" min-width="260">
|
||||
<template slot-scope="scope">
|
||||
@ -42,7 +43,7 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="120px" align="center" label="运费(元)" prop="firstPrice">
|
||||
<el-table-column min-width="120px" align="center" label="费用(元)" prop="firstPrice">
|
||||
<template slot-scope="scope">
|
||||
<el-form-item :rules="rules.firstPrice" :prop="'region.'+scope.$index+'.firstPrice'">
|
||||
<el-input-number v-model="scope.row.firstPrice" controls-position="right" />
|
||||
@ -186,6 +187,7 @@ const defaultRole = {
|
||||
}
|
||||
const kg = '重量(kg)'
|
||||
const m = '体积(m³)'
|
||||
const km = '公里(km)'
|
||||
const statusMap = [
|
||||
{
|
||||
title: '首件',
|
||||
@ -201,6 +203,11 @@ const statusMap = [
|
||||
title: `首件${m}`,
|
||||
title2: `续件${m}`,
|
||||
title3: `包邮${m}`
|
||||
},
|
||||
{
|
||||
title: `首${km}`,
|
||||
title2: `续${km}`,
|
||||
title3: `免费${km}`
|
||||
}
|
||||
]
|
||||
export default {
|
||||
@ -239,7 +246,7 @@ export default {
|
||||
{ required: true, message: '请输入', trigger: 'blur' }
|
||||
],
|
||||
firstPrice: [
|
||||
{ required: true, message: '请输入运费', trigger: 'blur' }
|
||||
{ required: true, message: '请输入费用', trigger: 'blur' }
|
||||
],
|
||||
renewalPrice: [
|
||||
{ required: true, message: '请输入续费', trigger: 'blur' }
|
||||
@ -422,7 +429,7 @@ export default {
|
||||
name: this.ruleForm.name,
|
||||
sort: this.ruleForm.sort,
|
||||
type: this.ruleForm.type,
|
||||
// 配送区域及运费
|
||||
// 配送区域及费用
|
||||
// shippingTemplatesRegionRequestList: [],
|
||||
// // 指定包邮设置
|
||||
// shippingTemplatesFreeRequestList: []
|
||||
|
@ -11,7 +11,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button type="primary" size="mini" @click="handleSubmit()" v-hasPermi="['admin:shipping:templates:save']">添加运费模板</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleSubmit()" v-hasPermi="['admin:shipping:templates:save']">添加配送模板</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
@ -103,7 +103,8 @@ export default {
|
||||
const statusMap = {
|
||||
1: '按件数',
|
||||
2: '按重量',
|
||||
3: '按体积'
|
||||
3: '按体积',
|
||||
4: '按距离'
|
||||
}
|
||||
return statusMap[status]
|
||||
}
|
||||
|
@ -1,11 +1,25 @@
|
||||
<template>
|
||||
<div class="divBox">
|
||||
<el-form :model="tableFrom" @keyup.enter.native="getDataList()" label-width="90px">
|
||||
<el-form
|
||||
:model="tableFrom"
|
||||
@keyup.enter.native="getDataList()"
|
||||
label-width="90px"
|
||||
>
|
||||
<el-form-item label="活动名称:">
|
||||
<el-input @input="getDataList()" style="width: 275px" v-model="tableFrom.keywords" placeholder="查询活动" clearable></el-input>
|
||||
<el-input
|
||||
@input="getDataList()"
|
||||
style="width: 275px"
|
||||
v-model="tableFrom.keywords"
|
||||
placeholder="查询活动"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动类型:">
|
||||
<el-radio-group v-model="tableFrom.cid" size="medium" @input="getDataList()">
|
||||
<el-radio-group
|
||||
v-model="tableFrom.cid"
|
||||
size="medium"
|
||||
@input="getDataList()"
|
||||
>
|
||||
<el-radio-button label="">全部</el-radio-button>
|
||||
<el-radio-button label="746">活动预约</el-radio-button>
|
||||
<el-radio-button label="752">采茶预约</el-radio-button>
|
||||
@ -13,26 +27,30 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-hasPermi="['admin:activity:save']" type="primary" @click="addOrUpdateHandle()">新增活动</el-button>
|
||||
<el-button
|
||||
v-hasPermi="['admin:activity:save']"
|
||||
type="primary"
|
||||
@click="addOrUpdateHandle()"
|
||||
>新增活动</el-button
|
||||
>
|
||||
<!-- <el-button v-hasPermi="['autogencode:ebactivity:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
:data="dataList"
|
||||
v-loading="dataListLoading"
|
||||
style="width: 100%;">
|
||||
<el-table :data="dataList" v-loading="dataListLoading" style="width: 100%;">
|
||||
<el-table-column
|
||||
width="60"
|
||||
prop="id"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="活动编号">
|
||||
label="活动编号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cid"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="活动类型">
|
||||
label="活动类型"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<span v-if="scope.row.cid == 746">活动预约</span>
|
||||
@ -47,14 +65,16 @@
|
||||
prop="title"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="标题">
|
||||
label="标题"
|
||||
>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="imageInput"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="图片">
|
||||
label="图片"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<el-image
|
||||
@ -69,19 +89,22 @@
|
||||
prop="activityAddr"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="地址">
|
||||
label="地址"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="activityNum"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="活动人数">
|
||||
label="活动人数"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="activityPrice"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="费用">
|
||||
label="费用"
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
<!-- prop="content"-->
|
||||
@ -94,23 +117,21 @@
|
||||
prop="beginTime"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="开始时间 - 结束时间">
|
||||
label="开始时间 - 结束时间"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.beginTime }} - {{ scope.row.endTime }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="是否热门">
|
||||
<el-table-column header-align="center" align="center" label="是否热门">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
@change='changeStatus($event,scope.row,"hot")'
|
||||
@change="changeStatus($event, scope.row, 'hot')"
|
||||
v-model="scope.row.isHot"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949">
|
||||
inactive-color="#ff4949"
|
||||
>
|
||||
</el-switch>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
@ -130,21 +151,36 @@
|
||||
prop="sort"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="排序">
|
||||
label="排序"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
label="操作"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
|
||||
<el-button v-hasPermi="['admin:activity:update']" type="text" size="small"
|
||||
@click="activityLog(scope.row.id)">预约记录
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
v-hasPermi="['admin:activity:update']"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="activityLog(scope.row.id)"
|
||||
>预约记录
|
||||
</el-button>
|
||||
<el-button v-hasPermi="['admin:activity:delete']" type="text" size="small"
|
||||
@click="deleteHandle(scope.row.id)">删除
|
||||
<el-button
|
||||
v-hasPermi="['admin:activity:delete']"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="deleteHandle(scope.row.id)"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -156,38 +192,93 @@
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="tableFrom.limit"
|
||||
:total="totalPage"
|
||||
layout="total, sizes, prev, pager, next, jumper">
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
>
|
||||
</el-pagination>
|
||||
<!-- 表单弹窗, 新增数据和修改数据-->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
<add-or-update
|
||||
v-if="addOrUpdateVisible"
|
||||
ref="addOrUpdate"
|
||||
@refreshDataList="getDataList"
|
||||
></add-or-update>
|
||||
<el-dialog
|
||||
@close="closeLog"
|
||||
title="活动预约记录"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="logVisible"
|
||||
width="80%"
|
||||
>
|
||||
<el-table
|
||||
:data="logList"
|
||||
style="width: 100%;">
|
||||
<el-form :inline="true" size="small" label-width="100px">
|
||||
<el-form-item label="手机号:" >
|
||||
<el-input
|
||||
v-model="logParams.cellPhone"
|
||||
placeholder="请输入手机号码"
|
||||
class="selWidth"
|
||||
size="small"
|
||||
clearable
|
||||
@clear="activityLog(logParams.activityId)"
|
||||
>
|
||||
<el-button
|
||||
slot="append"
|
||||
icon="el-icon-search"
|
||||
size="small"
|
||||
@click="activityLog(logParams.activityId)"
|
||||
/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名:" >
|
||||
<el-input
|
||||
v-model="logParams.userName"
|
||||
placeholder="请输入联系人姓名"
|
||||
class="selWidth"
|
||||
size="small"
|
||||
clearable
|
||||
@clear="activityLog(logParams.activityId)"
|
||||
>
|
||||
<el-button
|
||||
slot="append"
|
||||
icon="el-icon-search"
|
||||
size="small"
|
||||
@click="activityLog(logParams.activityId)"
|
||||
/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="预约日期:" >
|
||||
<el-date-picker
|
||||
v-model="date"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
@change="activityLog(logParams.activityId)"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="logList" style="width: 100%;">
|
||||
<el-table-column
|
||||
width="100"
|
||||
prop="id"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="预约编号">
|
||||
label="预约编号"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
width="100"
|
||||
prop="userName"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="预约人">
|
||||
label="预约人"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cellPhone"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="预约手机号">
|
||||
label="预约手机号"
|
||||
>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
<!-- width="120"-->
|
||||
@ -201,25 +292,32 @@
|
||||
prop="registerDate"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="预约指定日期">
|
||||
label="预约指定日期"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remark"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="备注">
|
||||
label="备注"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="registerStatus"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="预约状态">
|
||||
label="预约状态"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<el-tag v-if="scope.row.registerStatus == 0">待确认</el-tag>
|
||||
<el-tag v-else-if="scope.row.registerStatus == 1">报名成功</el-tag>
|
||||
<el-tag v-else-if="scope.row.registerStatus == 1"
|
||||
>报名成功</el-tag
|
||||
>
|
||||
<el-tag v-else-if="scope.row.registerStatus == 2">已拒绝</el-tag>
|
||||
<el-tag type="warning" v-else-if="scope.row.registerStatus ==4">已取消</el-tag>
|
||||
<el-tag type="warning" v-else-if="scope.row.registerStatus == 4"
|
||||
>已取消</el-tag
|
||||
>
|
||||
<el-tag v-else>未知类型</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
@ -228,7 +326,8 @@
|
||||
prop="cancelData"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="取消时间">
|
||||
label="取消时间"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<span v-if="scope.row.cancelData === null"> - </span>
|
||||
@ -240,7 +339,8 @@
|
||||
prop="cancelReason"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="取消原因">
|
||||
label="取消原因"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<span v-if="scope.row.cancelReason === null"> - </span>
|
||||
@ -254,15 +354,32 @@
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
label="操作">
|
||||
label="操作"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-popconfirm v-hasPermi="['admin:activity:update']" @onConfirm="update(scope.row)" v-if="scope.row.registerStatus == 0"
|
||||
title="请在和客户确认之后再点击哦!">
|
||||
<el-popconfirm
|
||||
v-hasPermi="['admin:activity:update']"
|
||||
@onConfirm="update(scope.row)"
|
||||
v-if="scope.row.registerStatus == 0"
|
||||
title="请在和客户确认之后再点击哦!"
|
||||
>
|
||||
<!-- //todo未完成 -->
|
||||
<template #reference>
|
||||
<el-button type="text" size="small">同意预约</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
<el-popconfirm
|
||||
v-hasPermi="['admin:activity:update']"
|
||||
@onConfirm="rejectRecord(scope.row)"
|
||||
v-if="scope.row.registerStatus == 0"
|
||||
title="确定要拒绝吗?"
|
||||
>
|
||||
<!-- //todo未完成 -->
|
||||
<template #reference>
|
||||
<el-button type="text" size="small">拒绝</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
<el-button v-if="scope.row.registerStatus >=2" type="text" size="small" @click="deleteRecordHandle(scope.row)">删除</el-button>
|
||||
<!-- <el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>-->
|
||||
<!-- <el-button v-hasPermi="['admin:activity:update']" type="text" size="small"-->
|
||||
<!-- @click="activityLog(scope.row.id)">预约记录-->
|
||||
@ -277,27 +394,26 @@
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
@current-change="handleCurrentChange"
|
||||
:total="this.logParams.total">
|
||||
:total="logParams.total"
|
||||
>
|
||||
</el-pagination>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="logVisibles = false">确 定</el-button>
|
||||
<!-- <el-button type="primary" @click="logVisibles = false">确 定</el-button> -->
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import {
|
||||
activityDeleteApi,
|
||||
activityListApi,
|
||||
activityLogListApi,
|
||||
ebactivityUpdateApi,
|
||||
userActivityPlaceListApi
|
||||
} from "@/api/activity"
|
||||
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update"
|
||||
userActivityPlaceListApi,
|
||||
activityRecordDeleteApi
|
||||
} from "@/api/activity";
|
||||
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
@ -306,91 +422,141 @@ export default {
|
||||
logVisible: false,
|
||||
dataList: [],
|
||||
logList: [],
|
||||
date: [],
|
||||
logParams: {
|
||||
activityId: "",
|
||||
limit: 10,
|
||||
page: 1,
|
||||
total: 1,
|
||||
cellPhone: "",
|
||||
userName: ""
|
||||
},
|
||||
tableFrom: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
name: '',
|
||||
keywords: '',
|
||||
cid: "",
|
||||
name: "",
|
||||
keywords: "",
|
||||
cid: ""
|
||||
},
|
||||
totalPage: 0,
|
||||
addOrUpdateVisible: false
|
||||
}
|
||||
};
|
||||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
mounted() {
|
||||
this.getDataList()
|
||||
this.getDataList();
|
||||
},
|
||||
methods: {
|
||||
update(row) {
|
||||
console.log("确定了")
|
||||
console.log(row)
|
||||
userActivityPlaceListApi({id:row.id,status:0}).then(res =>{
|
||||
this.$message.success("修改成功!");
|
||||
this.activityLog(this.logParams.activityId)
|
||||
deleteRecordHandle(row) {
|
||||
this.$confirm('确定删除当前数据?').then(() => {
|
||||
activityRecordDeleteApi({ id: row.id }).then(res => {
|
||||
this.$message.success("删除成功");
|
||||
this.activityLog(this.logParams.activityId);
|
||||
});
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
closeLog() {
|
||||
this.logParams = {
|
||||
activityId: "",
|
||||
limit: 10,
|
||||
page: 1,
|
||||
total: 1,
|
||||
cellPhone: "",
|
||||
userName: ""
|
||||
};
|
||||
this.date = [];
|
||||
},
|
||||
update(row) {
|
||||
console.log("确定了");
|
||||
console.log(row);
|
||||
userActivityPlaceListApi({ id: row.id, registerStatus: 1 }).then(res => {
|
||||
this.$message.success("修改成功!");
|
||||
this.activityLog(this.logParams.activityId);
|
||||
});
|
||||
},
|
||||
rejectRecord(row) {
|
||||
userActivityPlaceListApi({ id: row.id, registerStatus: 2 }).then(res => {
|
||||
this.$message.success("拒绝成功!");
|
||||
this.activityLog(this.logParams.activityId);
|
||||
});
|
||||
},
|
||||
//活动记录
|
||||
activityLog(id) {
|
||||
this.logParams.activityId = id
|
||||
this.logVisible = true
|
||||
activityLogListApi(this.logParams).then(res => {
|
||||
this.logParams.limit = res.limit
|
||||
this.logParams.page = res.page
|
||||
this.logParams.total = res.total
|
||||
this.logList = res.list
|
||||
})
|
||||
this.logParams.activityId = id;
|
||||
this.logVisible = true;
|
||||
this.logParams.page = 1;
|
||||
activityLogListApi(
|
||||
Object.assign(
|
||||
{ ...this.logParams },
|
||||
this.date && this.date.length > 0
|
||||
? {
|
||||
beginDate: this.date[0] + " 01:00:00" || "",
|
||||
endDate: this.date[1] + " 23:59:59" || ""
|
||||
}
|
||||
: {}
|
||||
)
|
||||
).then(res => {
|
||||
this.logParams.limit = res.limit;
|
||||
this.logParams.page = res.page;
|
||||
this.logParams.total = res.total;
|
||||
this.logList = res.list;
|
||||
});
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.logParams.page = val
|
||||
activityLogListApi(this.logParams).then(res => {
|
||||
this.logParams.limit = res.limit
|
||||
this.logParams.page = res.page
|
||||
this.logParams.total = res.total
|
||||
this.logList = res.list
|
||||
})
|
||||
this.logParams.page = val;
|
||||
activityLogListApi(
|
||||
Object.assign(
|
||||
{ ...this.logParams },
|
||||
this.date && this.date.length > 0
|
||||
? {
|
||||
beginDate: this.date[0] + " 01:00:00" || "",
|
||||
endDate: this.date[1] + " 23:59:59" || ""
|
||||
}
|
||||
: {}
|
||||
)
|
||||
).then(res => {
|
||||
this.logParams.limit = res.limit;
|
||||
this.logParams.page = res.page;
|
||||
this.logParams.total = res.total;
|
||||
this.logList = res.list;
|
||||
});
|
||||
},
|
||||
changeStatus($event, val, type) {
|
||||
if (type === 'banner') {
|
||||
val.isBanner = $event
|
||||
if (type === "banner") {
|
||||
val.isBanner = $event;
|
||||
}
|
||||
if (type === 'hot') {
|
||||
val.isHot = $event
|
||||
if (type === "hot") {
|
||||
val.isHot = $event;
|
||||
}
|
||||
ebactivityUpdateApi(val).then(res => {
|
||||
this.$message.success("修改成功!");
|
||||
this.getDataList()
|
||||
})
|
||||
this.getDataList();
|
||||
});
|
||||
},
|
||||
addOrUpdateHandle(id) {
|
||||
this.addOrUpdateVisible = true
|
||||
this.addOrUpdateVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init(id)
|
||||
})
|
||||
this.$refs.addOrUpdate.init(id);
|
||||
});
|
||||
},
|
||||
deleteHandle(id) {
|
||||
this.$confirm('确定删除当前数据?').then(() => {
|
||||
this.$confirm("确定删除当前数据?").then(() => {
|
||||
activityDeleteApi({ id: id }).then(data => {
|
||||
this.$message.success('删除成功')
|
||||
this.getDataList()
|
||||
})
|
||||
})
|
||||
this.$message.success("删除成功");
|
||||
this.getDataList();
|
||||
});
|
||||
});
|
||||
},
|
||||
sizeChangeHandle(val) {
|
||||
this.tableFrom.limit = val
|
||||
this.getDataList()
|
||||
this.tableFrom.limit = val;
|
||||
this.getDataList();
|
||||
},
|
||||
currentChangeHandle(page) {
|
||||
this.tableFrom.page = page
|
||||
this.getDataList()
|
||||
this.tableFrom.page = page;
|
||||
this.getDataList();
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle(val) {
|
||||
@ -398,23 +564,19 @@ export default {
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList() {
|
||||
this.dataListLoading = true
|
||||
this.dataListLoading = true;
|
||||
activityListApi(this.tableFrom).then(res => {
|
||||
// TODO 获取数据列表
|
||||
this.dataList = res.list
|
||||
this.totalPage = res.total
|
||||
this.tableFrom.limit = res.total
|
||||
this.tableFrom.page = res.page
|
||||
this.dataList = res.list;
|
||||
this.totalPage = res.total;
|
||||
this.tableFrom.limit = res.limit;
|
||||
this.tableFrom.page = res.page;
|
||||
|
||||
this.dataListLoading = false
|
||||
})
|
||||
this.dataListLoading = false;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
|
||||
</style>
|
||||
<style lang="sass" scoped></style>
|
||||
|
@ -3,26 +3,38 @@
|
||||
<el-card class="box-card">
|
||||
<div class="clearfix">
|
||||
<div class="container">
|
||||
<el-form size="small" label-width="100px" >
|
||||
<!-- <el-form-item label="预约状态:">-->
|
||||
<!-- <el-radio-group v-model="tableFrom.status" type="button" @change="seachList">-->
|
||||
<!-- <el-radio-button label="all">全部</el-radio-button>-->
|
||||
<!-- <el-radio-button label="unPaid">待确认 </el-radio-button>-->
|
||||
<!-- <el-radio-button label="unPaid">预约成功 </el-radio-button>-->
|
||||
<!-- <el-radio-button label="unPaid">预约取消 </el-radio-button>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="预约人:" class="width100">
|
||||
<el-form size="small" label-width="120px" >
|
||||
<el-form-item label="预约状态:">
|
||||
<el-radio-group v-model="tableFrom.status" type="button" @change="seachList">
|
||||
<el-radio-button :label="''">全部</el-radio-button>
|
||||
<el-radio-button label="0">待确认 </el-radio-button>
|
||||
<el-radio-button label="1">预约成功 </el-radio-button>
|
||||
<el-radio-button label="2">预约取消 </el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="预约人:" class="width100">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="请输入预约人" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="手机号:" class="width100">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="请输入订单号" class="selWidth" size="small" clearable>
|
||||
<el-form-item label="预约人/手机号:" class="width100">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="请输入预约人姓名/手机号" class="selWidth" size="small" clearable @clear="seachList">
|
||||
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="预约日期:" class="width100">
|
||||
<el-date-picker
|
||||
v-model="date"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
@change="seachList"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
@ -131,6 +143,7 @@
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="scope.row.status == 0" type="text" size="small" @click="mobile(scope.row)">审核预约</el-button>
|
||||
<el-button v-if="scope.row.status == 2" type="text" size="small" @click="deleteHandle(scope.row)">删除</el-button>
|
||||
<!-- <el-button v-if="scope.row.status == 1" type="text" size="small" @click="innerVisible = true">后台取消</el-button>-->
|
||||
|
||||
<!-- <el-button v-hasPermi="['admin:activity:update']" type="text" size="small"-->
|
||||
@ -226,7 +239,8 @@ import {
|
||||
activityListApi,
|
||||
activityLogListApi,
|
||||
activityPlaceListApi, activityPlaceUpdateApi,
|
||||
ebactivityUpdateApi
|
||||
ebactivityUpdateApi,
|
||||
placeDeleteApi
|
||||
} from "@/api/activity"
|
||||
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update"
|
||||
|
||||
@ -239,10 +253,13 @@ export default {
|
||||
mobileVisible: false,
|
||||
dataList:[],
|
||||
mobileFrom:{},
|
||||
date:[],
|
||||
totalPage:0,
|
||||
tableFrom:{
|
||||
page: 1,
|
||||
limit: 20,
|
||||
keywords: '',
|
||||
status: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -256,6 +273,15 @@ export default {
|
||||
|
||||
|
||||
methods: {
|
||||
deleteHandle(row){
|
||||
this.$confirm('确定删除当前数据?').then(() => {
|
||||
placeDeleteApi({id:row.id}).then(data => {
|
||||
this.$message.success('删除成功')
|
||||
this.getDataList()
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
seachList() {
|
||||
this.tableFrom.page = 1
|
||||
this.getDataList()
|
||||
@ -285,11 +311,10 @@ export default {
|
||||
|
||||
getDataList(){
|
||||
this.dataListLoading = true
|
||||
activityPlaceListApi(this.tableFrom).then(res =>{
|
||||
console.log(res)
|
||||
activityPlaceListApi(Object.assign({...this.tableFrom},this.date&&this.date.length > 0 ? {beginDate:this.date[0] + ' 01:00:00'|| '',endDate:this.date[1] + ' 23:59:59' || ''} : {})).then(res =>{
|
||||
this.dataList = res.list
|
||||
this.totalPage = res.total
|
||||
this.tableFrom.limit = res.total
|
||||
this.tableFrom.limit = res.limit
|
||||
this.tableFrom.page = res.page
|
||||
|
||||
|
||||
|
@ -121,7 +121,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid2">
|
||||
<el-form-item label="运费模板:" prop="tempId">
|
||||
<el-form-item label="配送模板:" prop="tempId">
|
||||
<div class="acea-row">
|
||||
<el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidthd">
|
||||
<el-option
|
||||
@ -131,7 +131,7 @@
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
<!--<el-button class="mr15" @click="addTem">添加运费模板</el-button>-->
|
||||
<!--<el-button class="mr15" @click="addTem">添加配送模板</el-button>-->
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -362,7 +362,7 @@
|
||||
loading: false,
|
||||
fullscreenLoading: false,
|
||||
merCateList: [], // 商户分类筛选
|
||||
shippingList: [], // 运费模板
|
||||
shippingList: [], // 配送模板
|
||||
seckillTime: [],
|
||||
ruleValidate: {
|
||||
productId: [
|
||||
@ -384,7 +384,7 @@
|
||||
{ required: true, message: '请输入砍价商品简介', trigger: 'blur' }
|
||||
],
|
||||
tempId: [
|
||||
{ required: true, message: '请选择运费模板', trigger: 'change' }
|
||||
{ required: true, message: '请选择配送模板', trigger: 'change' }
|
||||
],
|
||||
timeId: [
|
||||
{ required: true, message: '请选择活动时间', trigger: 'change' }
|
||||
@ -523,13 +523,13 @@
|
||||
return item
|
||||
})
|
||||
},
|
||||
// 运费模板;
|
||||
// 配送模板;
|
||||
getShippingList() {
|
||||
shippingTemplatesList(this.tempData).then(res => {
|
||||
this.shippingList = res.list
|
||||
})
|
||||
},
|
||||
// 运费模板
|
||||
// 配送模板
|
||||
addTem() {
|
||||
this.$refs.addTemplates.dialogVisible = true
|
||||
this.$refs.addTemplates.getCityList()
|
||||
|
@ -133,7 +133,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid2">
|
||||
<el-form-item label="运费模板:" prop="tempId">
|
||||
<el-form-item label="配送模板:" prop="tempId">
|
||||
<div class="acea-row">
|
||||
<el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidthd">
|
||||
<el-option
|
||||
@ -143,7 +143,7 @@
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
<!--<el-button class="mr15" @click="addTem">添加运费模板</el-button>-->
|
||||
<!--<el-button class="mr15" @click="addTem">添加配送模板</el-button>-->
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -369,7 +369,7 @@
|
||||
loading: false,
|
||||
fullscreenLoading: false,
|
||||
merCateList: [], // 商户分类筛选
|
||||
shippingList: [], // 运费模板
|
||||
shippingList: [], // 配送模板
|
||||
seckillTime: [],
|
||||
ruleValidate: {
|
||||
productId: [
|
||||
@ -391,7 +391,7 @@
|
||||
{ required: true, message: '请输入拼团商品简介', trigger: 'blur' }
|
||||
],
|
||||
tempId: [
|
||||
{ required: true, message: '请选择运费模板', trigger: 'change' }
|
||||
{ required: true, message: '请选择配送模板', trigger: 'change' }
|
||||
],
|
||||
image: [
|
||||
{ required: true, message: '请上传商品图', trigger: 'change' }
|
||||
@ -532,13 +532,13 @@
|
||||
return item
|
||||
})
|
||||
},
|
||||
// 运费模板;
|
||||
// 配送模板;
|
||||
getShippingList() {
|
||||
shippingTemplatesList(this.tempData).then(res => {
|
||||
this.shippingList = res.list
|
||||
})
|
||||
},
|
||||
// 运费模板
|
||||
// 配送模板
|
||||
addTem() {
|
||||
this.$refs.addTemplates.dialogVisible = true
|
||||
this.$refs.addTemplates.getCityList()
|
||||
|
@ -86,7 +86,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid2">
|
||||
<el-form-item label="运费模板:" prop="tempId">
|
||||
<el-form-item label="配送模板:" prop="tempId">
|
||||
<div class="acea-row">
|
||||
<el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidth">
|
||||
<el-option
|
||||
@ -96,7 +96,7 @@
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
<!--<el-button class="mr15" @click="addTem">添加运费模板</el-button>-->
|
||||
<!--<el-button class="mr15" @click="addTem">添加配送模板</el-button>-->
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -345,7 +345,7 @@
|
||||
loading: false,
|
||||
fullscreenLoading: false,
|
||||
merCateList: [], // 商户分类筛选
|
||||
shippingList: [], // 运费模板
|
||||
shippingList: [], // 配送模板
|
||||
seckillTime: [],
|
||||
ruleValidate: {
|
||||
productId: [
|
||||
@ -367,7 +367,7 @@
|
||||
{ required: true, message: '请输入秒杀商品简介', trigger: 'blur' }
|
||||
],
|
||||
tempId: [
|
||||
{ required: true, message: '请选择运费模板', trigger: 'change' }
|
||||
{ required: true, message: '请选择配送模板', trigger: 'change' }
|
||||
],
|
||||
timeId: [
|
||||
{ required: true, message: '请选择活动时间', trigger: 'change' }
|
||||
@ -496,13 +496,13 @@
|
||||
return item
|
||||
})
|
||||
},
|
||||
// 运费模板;
|
||||
// 配送模板;
|
||||
getShippingList() {
|
||||
shippingTemplatesList(this.tempData).then(res => {
|
||||
this.shippingList = res.list
|
||||
})
|
||||
},
|
||||
// 运费模板
|
||||
// 配送模板
|
||||
addTem() {
|
||||
this.$refs.addTemplates.dialogVisible = true
|
||||
this.$refs.addTemplates.getCityList()
|
||||
|
@ -49,6 +49,21 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="viceImage"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="背景图">
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
<el-image
|
||||
style="width: 36px; height: 36px"
|
||||
:src="scope.row.viceImage"
|
||||
:preview-src-list="[scope.row.viceImage]"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="productPrice"
|
||||
|
@ -21,6 +21,8 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="茶树图" prop="productImage">
|
||||
@ -33,6 +35,17 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="背景图" prop="viceImage">
|
||||
<div class="upLoadPicBox" @click="modalPicTap('1','pi7')">
|
||||
<div v-if="dataForm.viceImage" class="pictrue">
|
||||
<img :src="dataForm.viceImage"></div>
|
||||
<div v-else class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-form-item label="小苗阶段图" prop="smallImage">
|
||||
@ -123,14 +136,14 @@
|
||||
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="热门新品图" prop="hotImage">
|
||||
<!-- <el-form-item label="热门新品图" prop="hotImage">
|
||||
<el-switch v-model="dataForm.hotImage" :active-value="1" :inactive-value="0"></el-switch>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="认领状态" prop="status">
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="认领状态" prop="status">
|
||||
<el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0"></el-switch>
|
||||
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
@ -171,7 +184,8 @@ export default {
|
||||
createTime: '',
|
||||
updateTime: '',
|
||||
status: 1,
|
||||
limitNum: ''
|
||||
limitNum: '',
|
||||
viceImage:'',
|
||||
},
|
||||
dataRule: {
|
||||
title: [
|
||||
@ -180,6 +194,9 @@ export default {
|
||||
productImage: [
|
||||
{required: true, message: '茶树图 为必填项', trigger: 'blur'}
|
||||
],
|
||||
viceImage: [
|
||||
{required: true, message: '背景图 为必填项', trigger: 'blur'}
|
||||
],
|
||||
productName: [
|
||||
{required: true, message: '茶树名称 为必填项', trigger: 'blur'}
|
||||
],
|
||||
@ -250,6 +267,9 @@ export default {
|
||||
case 'pi5':
|
||||
_this.dataForm.productImage = img[0].sattDir;
|
||||
break;
|
||||
case 'pi7':
|
||||
_this.dataForm.viceImage = img[0].sattDir;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}, tit, 'content');
|
||||
@ -273,15 +293,19 @@ export default {
|
||||
if (!this.dataForm.id){
|
||||
plantCreateApi(this.dataForm).then(res => {
|
||||
this.$message.success('添加成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(0);
|
||||
}, 1000);
|
||||
});
|
||||
}else {
|
||||
plantUpdateApi(this.dataForm).then(res => {
|
||||
this.$message.success('更新成功')
|
||||
|
||||
setTimeout(() => {
|
||||
this.$router.go(0);
|
||||
}, 1000);
|
||||
});
|
||||
}
|
||||
|
||||
this.$router.go(0);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -10,12 +10,11 @@
|
||||
<el-radio-group v-model="tableFrom.itemStatus" size="medium" @input="getDataList()">
|
||||
<el-radio-button label="">全部</el-radio-button>
|
||||
<el-radio-button label=0>待确认</el-radio-button>
|
||||
<el-radio-button label="1">成长中</el-radio-button>
|
||||
<el-radio-button label="1">认领中</el-radio-button>
|
||||
<el-radio-button label="2">已成熟</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
<!-- <el-button v-hasPermi="['autogencode:ebteaplantorderitem:save']" type="primary" @click="addOrUpdateHandle()">新增数据</el-button>-->
|
||||
<!-- <el-button v-hasPermi="['autogencode:ebteaplantorderitem:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
|
||||
</el-form-item>
|
||||
@ -31,12 +30,12 @@
|
||||
align="center"
|
||||
label="认领凭证">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="account"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="手机号">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
<!-- prop="account"-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- align="center"-->
|
||||
<!-- label="手机号">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column
|
||||
prop="productImage"
|
||||
header-align="center"
|
||||
@ -58,12 +57,7 @@
|
||||
align="center"
|
||||
label="商品名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="account"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="商品名称">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="productPrice"
|
||||
header-align="center"
|
||||
@ -89,33 +83,41 @@
|
||||
label="结束时间">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="认领状态">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.status == 0" style="color: red"> 待确认</span>
|
||||
<span v-if="scope.row.status == 1" style="color: blue"> 成长中</span>
|
||||
<span v-else style="color: green"> 已成熟</span>
|
||||
<span v-if="scope.row.itemStatus == 0" style="color: #f87d3f;font-weight: 700;font-size: 16px"> 待确认</span>
|
||||
<span v-if="scope.row.itemStatus == 1" style="color: blue"> 认领中</span>
|
||||
<span v-if="scope.row.itemStatus == 2" style="color: green"> 已成熟</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="180"
|
||||
label="创建时间">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
align="center"
|
||||
label="支付状态">
|
||||
label="剩余天数">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.payStatus == 0" style="color: red"> 待支付</span>
|
||||
<span v-if="scope.row.payStatus == 1" > 已支付</span>
|
||||
<span v-else style="color: #be64a1"> 未知状态</span>
|
||||
<span>{{calculateRemainingDays(scope.row.beginTime,scope.row.endTime)}} 天</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column-->
|
||||
<!-- prop="createTime"-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- align="center"-->
|
||||
<!-- width="180"-->
|
||||
<!-- label="创建时间">-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- align="center"-->
|
||||
<!-- label="支付状态">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <span v-if="scope.row.payStatus == 0" style="color: red"> 待支付</span>-->
|
||||
<!-- <span v-if="scope.row.payStatus == 1" > 已支付</span>-->
|
||||
<!-- <span v-else style="color: #be64a1"> 未知状态</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
@ -123,8 +125,17 @@
|
||||
width="150"
|
||||
label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">删除</el-button>
|
||||
<el-button v-if="scope.row.itemStatus == 0" type="text" size="small" @click="sureOrUpdateHandle(scope.row)" v-hasPermi="['admin:teaPlant:update']">确认订单</el-button>
|
||||
<!-- <el-button type="text" size="small" @click="addOrUpdateHandle(scope.row)">修改</el-button>-->
|
||||
<el-dropdown trigger="click">
|
||||
<span class="el-dropdown-link">
|
||||
更多<i class="el-icon-arrow-down el-icon--right" />
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.itemId)" >认领详情</el-button>
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.itemId)" >删除认领茶树</el-button>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -139,13 +150,15 @@
|
||||
</el-pagination>
|
||||
<!-- 表单弹窗, 新增数据和修改数据 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
<sure-update v-if="sureOrUpdateVisible" ref="sureUpdate" @refreshDataList="getDataList"></sure-update>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AddOrUpdate from '@/views/marketing/tree/order/orde-add-and-update'
|
||||
import * as api from '@/api/plantorder'
|
||||
import {plantOrderListApi} from "@/api/plantorder";
|
||||
import SureUpdate from '@/views/marketing/tree/order/orde-add-sure.vue'
|
||||
import {plantorderDeleteApi, plantOrderListApi} from "@/api/plantorder";
|
||||
import {plantDeleteApi} from "@/api/plant";
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -161,19 +174,33 @@ import {plantOrderListApi} from "@/api/plantorder";
|
||||
totalPage: 0,
|
||||
dataListLoading: false,
|
||||
dataListSelections: [],
|
||||
addOrUpdateVisible: false
|
||||
addOrUpdateVisible: false,
|
||||
sureOrUpdateVisible: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
AddOrUpdate,
|
||||
SureUpdate
|
||||
},
|
||||
created () {
|
||||
this.getDataList()
|
||||
},
|
||||
methods: {
|
||||
calculateRemainingDays(startDate, endDate) {
|
||||
// 将日期字符串转换为 Date 对象
|
||||
const start = new Date(startDate);
|
||||
const end = new Date(endDate);
|
||||
// 计算时间差(以毫秒为单位)
|
||||
const timeDifference = end - start;
|
||||
|
||||
// 转换为天数
|
||||
const remainingDays = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
|
||||
return remainingDays;
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList () {
|
||||
this.dataListLoading = true
|
||||
this.tableFrom.limit= 20
|
||||
plantOrderListApi(this.tableFrom).then(res => {
|
||||
this.dataList = res.list
|
||||
this.totalPage = res.total
|
||||
@ -204,22 +231,87 @@ import {plantOrderListApi} from "@/api/plantorder";
|
||||
this.$refs.addOrUpdate.init(id)
|
||||
})
|
||||
},
|
||||
// 确定订单
|
||||
sureOrUpdateHandle (id) {
|
||||
this.sureOrUpdateVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.sureUpdate.init(id)
|
||||
})
|
||||
},
|
||||
// 删除
|
||||
deleteHandle (id) {
|
||||
// var ids = id ? [id] : this.dataListSelections.map(item => {
|
||||
// return item.id
|
||||
// })
|
||||
// this.$confirm(`您确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
// confirmButtonText: '确定',
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// }).then(() => {
|
||||
// api.ebteaplantorderitemDeleteApi(id).then(res => {
|
||||
// // TODO 处理删除
|
||||
// })
|
||||
// })
|
||||
// })
|
||||
console.log(id)
|
||||
this.$confirm(`您确定对[id=id] 删除操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
plantorderDeleteApi({id: id}).then(res => {
|
||||
// TODO 处理删除
|
||||
this.getDataList()
|
||||
this.$message.success('删除成功!')
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.el-table__body {
|
||||
width: 100%;
|
||||
table-layout: fixed !important;
|
||||
}
|
||||
.demo-table-expand{
|
||||
::v-deeplabel{
|
||||
width: 83px !important;
|
||||
}
|
||||
}
|
||||
.refunding{
|
||||
span{
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
.selWidth{
|
||||
width: 300px;
|
||||
}
|
||||
.el-dropdown-link {
|
||||
cursor: pointer;
|
||||
color: #409EFF;
|
||||
font-size: 12px;
|
||||
}
|
||||
.el-icon-arrow-down {
|
||||
font-size: 12px;
|
||||
}
|
||||
.tabBox_tit {
|
||||
font-size: 12px !important;
|
||||
/*margin: 0 2px 0 10px;*/
|
||||
letter-spacing: 1px;
|
||||
/*padding: 5px 0;*/
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.text_overflow{
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 400px;
|
||||
}
|
||||
.pup_card{
|
||||
width: 200px;
|
||||
border-radius: 5px;
|
||||
padding: 5px;
|
||||
box-sizing: border-box;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
}
|
||||
.flex-column{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.mt20{
|
||||
margin-top:20px
|
||||
}
|
||||
.relative{
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
|
126
src/views/marketing/tree/order/orde-add-sure.vue
Normal file
126
src/views/marketing/tree/order/orde-add-sure.vue
Normal file
@ -0,0 +1,126 @@
|
||||
<template>
|
||||
<!-- 基于 Element UI 新增和修改弹窗 -->
|
||||
<el-dialog
|
||||
title="确定订单"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="visible">
|
||||
<!-- 新增和创建表单表单 -->
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataSubmit()" label-width="120px">
|
||||
<el-form-item label="唯一凭证" prop="code">
|
||||
<el-input disabled v-model="dataForm.code" placeholder="茶树唯一凭证"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="认领开始时间" prop="beginTime">
|
||||
<el-date-picker
|
||||
v-model="dataForm.beginTime"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="认领开始时间"
|
||||
|
||||
>
|
||||
</el-date-picker>
|
||||
<!-- <el-input v-model="dataForm.beginTime" placeholder="树成熟开始时间"></el-input>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="认领结束时间" prop="endTime">
|
||||
<el-date-picker
|
||||
v-model="dataForm.endTime"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
@change="dateSubmit()"
|
||||
placeholder="认领结束时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="最终领养时间">
|
||||
<span style="color: red;font-size: 18px">{{ time }}天</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visible = false">取消</el-button>
|
||||
<el-button type="primary" @click="dataSubmit()">确定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as api from '@/api/plantorder'
|
||||
import {plantorderDetailApi, plantorderUpdateApi} from "@/api/plantorder";
|
||||
import {Message} from "element-ui";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
time: 0,
|
||||
visible: false,
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
dataForm: {},
|
||||
dataRule: {
|
||||
plantOrderId: [
|
||||
{required: true, message: '订单编号 为必填项', trigger: 'blur'}
|
||||
],
|
||||
code: [
|
||||
{required: true, message: '茶树唯一凭证 为必填项', trigger: 'blur'}
|
||||
],
|
||||
beginTime: [
|
||||
{required: true, message: '认领开始时间 为必填项', trigger: 'blur'}
|
||||
],
|
||||
endTime: [
|
||||
{required: true, message: '认领结束时间 为必填项', trigger: 'blur'}
|
||||
],
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init(data) {
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
this.dataForm = data;
|
||||
})
|
||||
},
|
||||
dateSubmit() {
|
||||
if (this.isStartDateAfterEndDate(this.dataForm.beginTime, this.dataForm.endTime)) {
|
||||
console.log("开始日期超出结束日期!");
|
||||
Message.error('开始日期超出结束日期!');
|
||||
return
|
||||
} else {
|
||||
this.time = this.calculateRemainingDays(this.dataForm.beginTime, this.dataForm.endTime);
|
||||
}
|
||||
},
|
||||
calculateRemainingDays(startDate, endDate) {
|
||||
// 将日期字符串转换为 Date 对象
|
||||
const start = new Date(startDate);
|
||||
const end = new Date(endDate);
|
||||
// 计算时间差(以毫秒为单位)
|
||||
const timeDifference = end - start;
|
||||
|
||||
// 转换为天数
|
||||
const remainingDays = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
|
||||
return remainingDays;
|
||||
},
|
||||
isStartDateAfterEndDate(startDate, endDate) {
|
||||
// 将日期字符串转换为 Date 对象
|
||||
const start = new Date(startDate);
|
||||
const end = new Date(endDate);
|
||||
// 比较日期
|
||||
if (isNaN(start) || isNaN(end)) {
|
||||
Message.error('日期格式不正确');
|
||||
return false;
|
||||
}
|
||||
return start > end;
|
||||
}
|
||||
,
|
||||
// 表单数据提交
|
||||
dataSubmit() {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.dataForm.status = 1
|
||||
plantorderUpdateApi(this.dataForm).then(res => {
|
||||
Message.success('确定成功!');
|
||||
this.$emit('refreshDataList');
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -72,8 +72,8 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="18" :sm="18" :md="18" :lg="12" :xl="12">
|
||||
<el-form-item label="运费模板:" prop="tempId">
|
||||
<el-select v-model="formValidate.tempId" placeholder="请选择" class="mr20" :disabled="isDisabled" style="width:100%;">
|
||||
<el-form-item label="配送模板:" prop="tempId">
|
||||
<el-select v-model="formValidate.tempId" placeholder="请选择" class="mr20" style="width:100%;">
|
||||
<el-option
|
||||
v-for="item in shippingList"
|
||||
:key="item.id"
|
||||
@ -84,7 +84,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="6" :sm="6" :md="6" :lg="12" :xl="12">
|
||||
<el-button v-show="!isDisabled" class="mr15" @click="addTem">运费模板</el-button>
|
||||
<el-button v-show="!isDisabled" class="mr15" @click="addTem">配送模板</el-button>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="商品规格:" props="specType">
|
||||
@ -93,9 +93,9 @@
|
||||
<el-radio :label="true">多规格</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="佣金设置:" props="isSub">
|
||||
<el-form-item label="基础设置:" props="isSub">
|
||||
<el-radio-group v-model="formValidate.isSub" @change="onChangetype(formValidate.isSub)" :disabled="isDisabled">
|
||||
<el-radio :label="true" class="radio">单独设置</el-radio>
|
||||
<!-- <el-radio :label="true" class="radio">单独设置</el-radio>-->
|
||||
<el-radio :label="false">默认设置</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
@ -422,8 +422,8 @@
|
||||
otPrice: 0,
|
||||
stock: 0,
|
||||
barCode: '',
|
||||
weight: 0,
|
||||
volume: 0
|
||||
// weight: 0,
|
||||
// volume: 0
|
||||
}],
|
||||
attr: [],
|
||||
selectRule: '',
|
||||
@ -433,7 +433,7 @@
|
||||
id: 0,
|
||||
couponIds: [],
|
||||
coupons: [],
|
||||
activity: ['默认','秒杀','砍价','拼团']
|
||||
activity: ['默认','秒杀']
|
||||
}
|
||||
const objTitle = {
|
||||
price: {
|
||||
@ -451,12 +451,12 @@
|
||||
barCode: {
|
||||
title: '商品编号'
|
||||
},
|
||||
weight: {
|
||||
title: '重量(KG)'
|
||||
},
|
||||
volume: {
|
||||
title: '体积(m³)'
|
||||
}
|
||||
// weight: {
|
||||
// title: '重量(KG)'
|
||||
// },
|
||||
// volume: {
|
||||
// title: '体积(m³)'
|
||||
// }
|
||||
}
|
||||
export default {
|
||||
name: 'ProductProductAdd',
|
||||
@ -464,7 +464,7 @@
|
||||
data() {
|
||||
return {
|
||||
isDisabled: this.$route.params.isDisabled==='1'?true:false,
|
||||
activity: { '默认': 'red', '秒杀': 'blue', '砍价': 'green', '拼团': 'yellow' },
|
||||
activity: { '默认': 'red', '秒杀': 'blue' },
|
||||
props2: {
|
||||
children: 'child',
|
||||
label: 'name',
|
||||
@ -482,7 +482,7 @@
|
||||
ManyAttrValue: [Object.assign({}, defaultObj.attrValue[0])], // 多规格
|
||||
ruleList: [],
|
||||
merCateList: [], // 商户分类筛选
|
||||
shippingList: [], // 运费模板
|
||||
shippingList: [], // 配送模板
|
||||
formThead: Object.assign({}, objTitle),
|
||||
formValidate: Object.assign({}, defaultObj),
|
||||
formDynamics: {
|
||||
@ -535,7 +535,7 @@
|
||||
{ required: true, message: '请输入商品简介', trigger: 'blur' }
|
||||
],
|
||||
tempId: [
|
||||
{ required: true, message: '请选择运费模板', trigger: 'change' }
|
||||
{ required: true, message: '请选择配送模板', trigger: 'change' }
|
||||
],
|
||||
image: [
|
||||
{ required: true, message: '请上传商品图', trigger: 'change' }
|
||||
@ -706,8 +706,8 @@
|
||||
otPrice: 0,
|
||||
stock: 0,
|
||||
barCode: '',
|
||||
weight: 0,
|
||||
volume: 0,
|
||||
// weight: 0,
|
||||
// volume: 0,
|
||||
brokerage: 0,
|
||||
brokerage_two: 0
|
||||
}
|
||||
@ -737,8 +737,8 @@
|
||||
otPrice: 0,
|
||||
stock: 0,
|
||||
barCode: '',
|
||||
weight: 0,
|
||||
volume: 0,
|
||||
// weight: 0,
|
||||
// volume: 0,
|
||||
brokerage: 0,
|
||||
brokerage_two: 0,
|
||||
attrValue: { [v['attrName']]: vv }
|
||||
@ -756,7 +756,7 @@
|
||||
return res
|
||||
}
|
||||
},
|
||||
// 运费模板
|
||||
// 配送模板
|
||||
addTem() {
|
||||
this.$refs.addTemplates.dialogVisible = true
|
||||
this.$refs.addTemplates.getCityList()
|
||||
@ -823,7 +823,7 @@
|
||||
this.ruleList = list
|
||||
})
|
||||
},
|
||||
// 运费模板;
|
||||
// 配送模板;
|
||||
getShippingList() {
|
||||
shippingTemplatesList(this.tempData).then(res => {
|
||||
this.shippingList = res.list
|
||||
@ -870,8 +870,8 @@
|
||||
this.$set(val, 'otPrice', this.oneFormBatch[0].otPrice)
|
||||
this.$set(val, 'stock', this.oneFormBatch[0].stock)
|
||||
this.$set(val, 'barCode', this.oneFormBatch[0].barCode)
|
||||
this.$set(val, 'weight', this.oneFormBatch[0].weight)
|
||||
this.$set(val, 'volume', this.oneFormBatch[0].volume)
|
||||
// this.$set(val, 'weight', this.oneFormBatch[0].weight)
|
||||
// this.$set(val, 'volume', this.oneFormBatch[0].volume)
|
||||
this.$set(val, 'brokerage', this.oneFormBatch[0].brokerage)
|
||||
this.$set(val, 'brokerageTwo', this.oneFormBatch[0].brokerageTwo)
|
||||
}
|
||||
@ -984,7 +984,7 @@
|
||||
ficti: info.ficti,
|
||||
coupons: info.coupons,
|
||||
couponIds: info.couponIds,
|
||||
activity: info.activityStr ? info.activityStr.split(',') : ['默认','秒杀','砍价','拼团']
|
||||
activity: info.activityStr ? info.activityStr.split(',') : ['默认','秒杀']
|
||||
}
|
||||
marketingSendApi({type:3}).then(res=>{
|
||||
if(this.formValidate.couponIds !== null){
|
||||
|
@ -62,7 +62,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid">
|
||||
<el-form-item label="运费模板:" prop="tempId">
|
||||
<el-form-item label="配送模板:" prop="tempId">
|
||||
<el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidth">
|
||||
<el-option
|
||||
v-for="item in shippingList"
|
||||
@ -319,7 +319,7 @@
|
||||
{required: true, message: '请输入单位', trigger: 'blur'}
|
||||
],
|
||||
tempId: [
|
||||
{required: true, message: '请选择运费模板', trigger: 'change', type: 'number'}
|
||||
{required: true, message: '请选择配送模板', trigger: 'change', type: 'number'}
|
||||
],
|
||||
keyword: [
|
||||
{required: true, message: '请输入商品关键字', trigger: 'blur'}
|
||||
@ -485,7 +485,7 @@
|
||||
return res
|
||||
}
|
||||
},
|
||||
// 获取运费模板;
|
||||
// 获取配送模板;
|
||||
productGetTemplate() {
|
||||
shippingTemplatesList(this.tempData).then(res => {
|
||||
this.shippingList = res.list
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-if="dialogVisible"
|
||||
title="运费模板"
|
||||
title="配送模板"
|
||||
:visible.sync="dialogVisible"
|
||||
width="1000px"
|
||||
:before-close="handleClose"
|
||||
@ -15,9 +15,10 @@
|
||||
<el-radio :label="1">按件数</el-radio>
|
||||
<el-radio :label="2">按重量</el-radio>
|
||||
<el-radio :label="3">按体积</el-radio>
|
||||
<el-radio :label="4">按距离</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="配送区域及运费" prop="region">
|
||||
<el-form-item label="配送区域及费用" prop="region">
|
||||
<el-table v-loading="listLoading" :data="ruleForm.region" border fit highlight-current-row style="width: 100%" size="mini" class="tempBox">
|
||||
<el-table-column align="center" label="可配送区域" min-width="260">
|
||||
<template slot-scope="scope">
|
||||
@ -42,7 +43,7 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="120px" align="center" label="运费(元)" prop="firstPrice">
|
||||
<el-table-column min-width="120px" align="center" label="费用(元)" prop="firstPrice">
|
||||
<template slot-scope="scope">
|
||||
<el-form-item :rules="rules.firstPrice" :prop="'region.'+scope.$index+'.firstPrice'">
|
||||
<el-input-number v-model="scope.row.firstPrice" controls-position="right" :min="0" />
|
||||
@ -107,7 +108,7 @@
|
||||
<el-input-number v-model="row.number" controls-position="right" :step-strictly="ruleForm.type===1?true:false" :min="ruleForm.type===1?1:0.1"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="120px" align="center" label="包邮金额(元)">
|
||||
<el-table-column min-width="120px" align="center" label="包邮金额(元)" v-if="isShowPrice">
|
||||
<template slot-scope="{row}">
|
||||
<el-input-number v-model="row.price" controls-position="right" />
|
||||
</template>
|
||||
@ -187,6 +188,7 @@ const defaultRole = {
|
||||
}
|
||||
const kg = '重量(kg)'
|
||||
const m = '体积(m³)'
|
||||
const km = '公里(km)'
|
||||
const statusMap = [
|
||||
{
|
||||
title: '首件',
|
||||
@ -202,6 +204,11 @@ const statusMap = [
|
||||
title: `首件${m}`,
|
||||
title2: `续件${m}`,
|
||||
title3: `包邮${m}`
|
||||
},
|
||||
{
|
||||
title: `首${km}`,
|
||||
title2: `续${km}`,
|
||||
title3: `免费${km}`
|
||||
}
|
||||
]
|
||||
export default {
|
||||
@ -240,7 +247,7 @@ export default {
|
||||
{ required: true, message: '请输入', trigger: 'blur' }
|
||||
],
|
||||
firstPrice: [
|
||||
{ required: true, message: '请输入运费', trigger: 'blur' }
|
||||
{ required: true, message: '请输入费用', trigger: 'blur' }
|
||||
],
|
||||
renewalPrice: [
|
||||
{ required: true, message: '请输入续费', trigger: 'blur' }
|
||||
@ -262,6 +269,7 @@ export default {
|
||||
title2: '续件',
|
||||
title3: '包邮件数'
|
||||
},
|
||||
isShowPrice: true,
|
||||
tempId: 0,
|
||||
type: 0 // 0添加 1编辑
|
||||
}
|
||||
@ -310,6 +318,11 @@ export default {
|
||||
},
|
||||
changeRadio(num) {
|
||||
this.columns = Object.assign({}, statusMap[num - 1])
|
||||
if (num === 4) {
|
||||
this.isShowPrice = false;
|
||||
} else {
|
||||
this.isShowPrice = true;
|
||||
}
|
||||
},
|
||||
// 添加配送区域
|
||||
addRegion(region) {
|
||||
@ -423,7 +436,7 @@ export default {
|
||||
name: this.ruleForm.name,
|
||||
sort: this.ruleForm.sort,
|
||||
type: this.ruleForm.type,
|
||||
// 配送区域及运费
|
||||
// 配送区域及费用
|
||||
// shippingTemplatesRegionRequestList: [],
|
||||
// // 指定包邮设置
|
||||
// shippingTemplatesFreeRequestList: []
|
||||
|
@ -11,7 +11,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button type="primary" size="mini" @click="handleSubmit()" v-hasPermi="['admin:shipping:templates:save']">添加运费模板</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleSubmit()" v-hasPermi="['admin:shipping:templates:save']">添加配送模板</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
@ -108,7 +108,8 @@ export default {
|
||||
const statusMap = {
|
||||
1: '按件数',
|
||||
2: '按重量',
|
||||
3: '按体积'
|
||||
3: '按体积',
|
||||
4: '按距离'
|
||||
}
|
||||
return statusMap[status]
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-if="dialogVisible"
|
||||
title="运费模板"
|
||||
title="配送模板"
|
||||
:visible.sync="dialogVisible"
|
||||
width="1000px"
|
||||
:before-close="handleClose"
|
||||
@ -15,9 +15,10 @@
|
||||
<el-radio :label="1">按件数</el-radio>
|
||||
<el-radio :label="2">按重量</el-radio>
|
||||
<el-radio :label="3">按体积</el-radio>
|
||||
<el-radio :label="4">按距离</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="配送区域及运费" prop="region">
|
||||
<el-form-item label="配送区域及费用" prop="region">
|
||||
<el-table v-loading="listLoading" :data="ruleForm.region" border fit highlight-current-row style="width: 100%" size="mini" class="tempBox">
|
||||
<el-table-column align="center" label="可配送区域" min-width="260">
|
||||
<template slot-scope="scope">
|
||||
@ -186,6 +187,7 @@ const defaultRole = {
|
||||
}
|
||||
const kg = '重量(kg)'
|
||||
const m = '体积(m³)'
|
||||
const km = '公里(km)'
|
||||
const statusMap = [
|
||||
{
|
||||
title: '首件',
|
||||
@ -201,6 +203,11 @@ const statusMap = [
|
||||
title: `首件${m}`,
|
||||
title2: `续件${m}`,
|
||||
title3: `包邮${m}`
|
||||
},
|
||||
{
|
||||
title: `首${km}`,
|
||||
title2: `续${km}`,
|
||||
title3: `免费${km}`
|
||||
}
|
||||
]
|
||||
export default {
|
||||
|
@ -11,7 +11,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button type="primary" size="mini" @click="handleSubmit()">添加运费模板</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleSubmit()">添加配送模板</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
@ -107,7 +107,8 @@ export default {
|
||||
const statusMap = {
|
||||
1: '按件数',
|
||||
2: '按重量',
|
||||
3: '按体积'
|
||||
3: '按体积',
|
||||
4: '按距离'
|
||||
}
|
||||
return statusMap[status]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user