Compare commits

..

10 Commits

Author SHA1 Message Date
tangzh
c7ce2d2eff . 2025-03-16 15:13:50 +08:00
tangzh
edb73664ea 推送 2025-03-04 22:47:56 +08:00
闵宪瑞
ca73ba85bc 隐藏视频内容 2025-01-03 14:17:48 +08:00
闵宪瑞
eed7744d30 更新茶树认领 2025-01-03 14:11:26 +08:00
闵宪瑞
10c5e16375 Merge remote-tracking branch 'origin/main' 2025-01-03 14:08:44 +08:00
闵宪瑞
0af6c362b2 修改图片和视频接口 2025-01-03 14:08:22 +08:00
cosarty
59a10c0c9e fix bug 2024-12-13 21:15:51 +08:00
cosarty
28b7beece6 添加预约记录删除 2024-12-13 11:45:54 +08:00
cosarty
59566ffc61 fix bug 2024-12-13 01:13:44 +08:00
cosarty
f5d5f41788 添加筛选和删除 2024-12-11 20:20:21 +08:00
30 changed files with 899 additions and 345 deletions

View File

@ -2,9 +2,7 @@
ENV = 'development' ENV = 'development'
# base api # base api
VUE_APP_BASE_API = 'https://syy.xunyingcloud.cn' VUE_APP_BASE_API = 'http://127.0.0.1:20010'
#VUE_APP_BASE_API = 'http://localhost:20010/'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled. # to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# It only does one thing by converting all import() to require(). # It only does one thing by converting all import() to require().

View File

@ -2,5 +2,5 @@
ENV = 'production' ENV = 'production'
# base api # base api
VUE_APP_BASE_API = 'https://syy.xunyingcloud.cn' VUE_APP_BASE_API = 'https://0511syy.cn'

1
.node-version Normal file
View File

@ -0,0 +1 @@
v14.21.3

View File

@ -169,7 +169,7 @@ utils 自定义工具js 独立命名,一般不用新建文件夹
│ │ └──SvgIcon # svg图标 │ │ └──SvgIcon # svg图标
│ │ └──Tinymce # 富文本编辑器 │ │ └──Tinymce # 富文本编辑器
│ │ └──ThemePicker # 右侧设置按钮,设置组题颜色 │ │ └──ThemePicker # 右侧设置按钮,设置组题颜色
│ │ └──templatesFrom # 运费模板 │ │ └──templatesFrom # 配送模板
│ │ └──uploadPicture # 上传图片组件 │ │ └──uploadPicture # 上传图片组件
│ │ └──Upload # 上传文件组件 │ │ └──Upload # 上传文件组件
│ │ └──UploadExcel # 下载Excel │ │ └──UploadExcel # 下载Excel
@ -211,7 +211,7 @@ utils 自定义工具js 独立命名,一般不用新建文件夹
│ │ └──cityList # 城市数据 │ │ └──cityList # 城市数据
│ │ └──companyList # 物流公司 │ │ └──companyList # 物流公司
│ │ └──config # 物流配置 │ │ └──config # 物流配置
│ │ └──shippingTemplates # 运费模板 │ │ └──shippingTemplates # 配送模板
│ │ └──setting # 系统设置 │ │ └──setting # 系统设置
│ │ └──systemStore # 提货点设置 │ │ └──systemStore # 提货点设置
│ │ └──appSetting # 应用 小程序 公众号设置 │ │ └──appSetting # 应用 小程序 公众号设置

View File

@ -1,11 +1,11 @@
{ {
"name": "crmeb-java-webpc-admin", "name": "crmeb-java-webpc-admin",
"version": "4.2.1", "version": "4.2.1",
"description": "水月雨后台", "description": "食材",
"author": "CRMEB", "author": "CRMEB",
"license": "MIT", "license": "MIT",
"scripts": { "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:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging", "build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview", "preview": "node build/index.js --preview",

View File

@ -104,3 +104,27 @@ export function userActivityPlaceListApi(data) {
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
})
}

View File

@ -99,7 +99,7 @@ export function expressDelete(data) {
}) })
} }
// 物流运费模板列表 // 物流配送模板列表
export function shippingTemplatesList(data) { export function shippingTemplatesList(data) {
return request({ return request({
url: '/admin/express/shipping/templates/list', url: '/admin/express/shipping/templates/list',
@ -108,7 +108,7 @@ export function shippingTemplatesList(data) {
}) })
} }
// 物流运费模板详情 // 物流配送模板详情
export function templateDetailApi(data) { export function templateDetailApi(data) {
return request({ return request({
url: '/admin/express/shipping/templates/info', url: '/admin/express/shipping/templates/info',
@ -117,7 +117,7 @@ export function templateDetailApi(data) {
}) })
} }
// 物流运费模板包邮 // 物流配送模板包邮
export function shippingFree(data) { export function shippingFree(data) {
return request({ return request({
url: '/admin/express/shipping/free/list', url: '/admin/express/shipping/free/list',
@ -126,7 +126,7 @@ export function shippingFree(data) {
}) })
} }
// 物流运费模板不包邮 // 物流配送模板不包邮
export function shippingRegion(data) { export function shippingRegion(data) {
return request({ return request({
url: 'admin/express/shipping/region/list', url: 'admin/express/shipping/region/list',
@ -135,7 +135,7 @@ export function shippingRegion(data) {
}) })
} }
// 物流运费模板新增 // 物流配送模板新增
export function shippingSave(data) { export function shippingSave(data) {
return request({ return request({
url: 'admin/express/shipping/templates/save', url: 'admin/express/shipping/templates/save',
@ -144,7 +144,7 @@ export function shippingSave(data) {
}) })
} }
// 物流运费模板更新 // 物流配送模板更新
export function shippingUpdate(data, id) { export function shippingUpdate(data, id) {
return request({ return request({
url: 'admin/express/shipping/templates/update', url: 'admin/express/shipping/templates/update',
@ -154,7 +154,7 @@ export function shippingUpdate(data, id) {
}) })
} }
// 物流运费模板删除 // 物流配送模板删除
export function shippingDetete(data) { export function shippingDetete(data) {
return request({ return request({
url: 'admin/express/shipping/templates/delete', url: 'admin/express/shipping/templates/delete',

View File

@ -18,9 +18,9 @@ export function EbTeaPlantOrderCreateApi(data) {
* ebteaplantorder更新 * ebteaplantorder更新
* @param pram * @param pram
*/ */
export function ebteaplantorderUpdateApi(data) { export function plantorderUpdateApi(data) {
return request({ return request({
url: 'autogencode/ebteaplantorder/update', url: `admin/teaPlant/updateOrderItem?itemId=${data.itemId}`,
method: 'POST', method: 'POST',
data data
}) })
@ -30,9 +30,9 @@ export function ebteaplantorderUpdateApi(data) {
* ebteaplantorder详情 * ebteaplantorder详情
* @param pram * @param pram
*/ */
export function ebteaplantorderDetailApi(id) { export function plantorderDetailApi(id) {
return request({ return request({
url: `autogencode/ebteaplantorder/info/${id}`, url: `admin/plantorder/info/${id}`,
method: 'GET' method: 'GET'
}) })
} }
@ -41,10 +41,11 @@ export function ebteaplantorderDetailApi(id) {
* ebteaplantorder删除 * ebteaplantorder删除
* @param pram * @param pram
*/ */
export function ebteaplantorderDeleteApi(id) { export function plantorderDeleteApi(data) {
return request({ return request({
url: `autogencode/ebteaplantorder/delete/${id}`, url: `admin/teaPlant/delete`,
method: 'get' method: 'get',
params: data,
}) })
} }

View File

@ -326,7 +326,7 @@ export function productGetRuleApi() {
} }
/** /**
* @description 商品 -- 获取运费模板 * @description 商品 -- 获取配送模板
*/ */
export function productGetTemplateApi() { export function productGetTemplateApi() {
return request({ return request({

View File

@ -88,7 +88,8 @@
type="primary" type="primary"
class="mr15 mb20" class="mr15 mb20"
@click="checkPics" @click="checkPics"
>使用选中图片</el-button >使用选中图片
</el-button
> >
<div class="mb20"> <div class="mb20">
<el-tooltip <el-tooltip
@ -140,9 +141,7 @@
:show-file-list="false" :show-file-list="false"
multiple multiple
> >
<el-button class="mr10" type="primary" v-if="pictureType" <el-button class="mr10" type="primary" v-if="pictureType">上传{{typeDate =='pic'?'图片':'视频'}}</el-button>
>上传图片</el-button
>
</el-upload> </el-upload>
<div> <div>
<el-button <el-button
@ -150,7 +149,8 @@
type="danger" type="danger"
@click.stop="editPicList('图片')" @click.stop="editPicList('图片')"
v-if="pictureType" v-if="pictureType"
>删除图片</el-button >删除{{typeDate =='pic'?'图片':'视频'}}
</el-button
> >
</div> </div>
<el-select <el-select
@ -285,7 +285,8 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handlerSubmit('editPram')" <el-button type="primary" @click="handlerSubmit('editPram')"
>确定</el-button >确定
</el-button
> >
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -306,7 +307,7 @@ import {
fileImageApi, fileImageApi,
fileListApi, fileListApi,
fileDeleteApi, fileDeleteApi,
attachmentMoveApi, attachmentMoveApi, fileFileApi,
} from "@/api/systemSetting"; } from "@/api/systemSetting";
import {getToken} from "@/utils/auth"; import {getToken} from "@/utils/auth";
import {checkPermi} from "@/utils/permission"; // import {checkPermi} from "@/utils/permission"; //
@ -559,16 +560,28 @@ export default {
spinner: "el-icon-loading", spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)", background: "rgba(0, 0, 0, 0.7)",
}); });
if (this.typeDate =='pic'){
fileImageApi(formData, data) fileImageApi(formData, data)
.then((res) => { .then((res) => {
loading.close(); loading.close();
this.$message.success("上传成功"); this.$message.success("上传成功");
this.tableData.page = 1; this.tableData.page = 1;
this.getFileList(); this.getFileList();
}) }).catch((res) => {
.catch((res) => {
loading.close(); loading.close();
}); });
}else {
fileFileApi(formData, data)
.then((res) => {
loading.close();
this.$message.success("上传成功");
this.tableData.page = 1;
this.getFileList();
}).catch((res) => {
loading.close();
});
}
}, },
// //
getFileList() { getFileList() {
@ -729,26 +742,32 @@ export default {
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
} }
.temp { .temp {
height: 0; height: 0;
margin-bottom: 0; margin-bottom: 0;
border: none; border: none;
padding: 0; padding: 0;
} }
.selectTreeClass { .selectTreeClass {
background: #d5e8fc; background: #d5e8fc;
} }
.treeBox { .treeBox {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.upload-demo { .upload-demo {
display: inline-block !important; display: inline-block !important;
float: left; float: left;
} }
.tree_w { .tree_w {
padding: 20px 30px; padding: 20px 30px;
} }
.custom-tree-node { .custom-tree-node {
flex: 1; flex: 1;
display: flex; display: flex;
@ -758,6 +777,7 @@ export default {
padding-right: 8px; padding-right: 8px;
color: #4386c6; color: #4386c6;
} }
.custom-tree-node-label { .custom-tree-node-label {
display: block; display: block;
width: 125px; width: 125px;
@ -765,32 +785,40 @@ export default {
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.el-ic { .el-ic {
display: none; display: none;
i, i,
span { span {
/*padding: 0 14px;*/ /*padding: 0 14px;*/
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
} }
.svg-icon { .svg-icon {
color: #4386c6; color: #4386c6;
} }
} }
.el-tree-node__content { .el-tree-node__content {
height: 38px; height: 38px;
} }
.el-tree-node__expand-icon { .el-tree-node__expand-icon {
color: #428bca; color: #428bca;
/*padding: 10px 10px 0px 10px !important;*/ /*padding: 10px 10px 0px 10px !important;*/
} }
.el-tree-node__content:hover .el-ic { .el-tree-node__content:hover .el-ic {
color: #428bca !important; color: #428bca !important;
display: inline-block; display: inline-block;
} }
.el-tree-node__content:hover { .el-tree-node__content:hover {
font-weight: bold; font-weight: bold;
} }
.el-tree--highlight-current .el-tree--highlight-current
.el-tree-node.is-current .el-tree-node.is-current
> .el-tree-node__content > .el-tree-node__content
@ -799,63 +827,77 @@ export default {
color: transparent; color: transparent;
cursor: default; cursor: default;
} }
/*background-color: #3998d9;*/ /*background-color: #3998d9;*/
.custom-tree-node { .custom-tree-node {
font-weight: bold; font-weight: bold;
} }
.el-tree-node__expand-icon { .el-tree-node__expand-icon {
font-weight: bold; font-weight: bold;
} }
} }
.el-dialog__body { .el-dialog__body {
.upload-container .image-preview .image-preview-wrapper img { .upload-container .image-preview .image-preview-wrapper img {
height: 100px; height: 100px;
} }
.el-dialog .el-collapse-item__wrap { .el-dialog .el-collapse-item__wrap {
padding-top: 0px; padding-top: 0px;
} }
.spatial_img { .spatial_img {
.el-collapse-item__wrap { .el-collapse-item__wrap {
margin-bottom: 0; margin-bottom: 0;
padding-top: 0px; padding-top: 0px;
} }
} }
.upload-container .image-preview .image-preview-wrapper { .upload-container .image-preview .image-preview-wrapper {
width: 120px; width: 120px;
} }
.upload-container .image-preview .image-preview-action { .upload-container .image-preview .image-preview-action {
line-height: 100px; line-height: 100px;
height: 100px; height: 100px;
} }
} }
.trees-coadd { .trees-coadd {
width: 100%; width: 100%;
border-radius: 4px; border-radius: 4px;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
.scollhide { .scollhide {
overflow-x: hidden; overflow-x: hidden;
overflow-y: scroll; overflow-y: scroll;
padding: 10px 0 10px 0; padding: 10px 0 10px 0;
box-sizing: border-box; box-sizing: border-box;
.trees { .trees {
width: 100%; width: 100%;
} }
} }
.scollhide::-webkit-scrollbar { .scollhide::-webkit-scrollbar {
display: none; display: none;
} }
} }
.conters { .conters {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
/*max-height: 296px;*/ /*max-height: 296px;*/
overflow: auto; overflow: auto;
} }
.conters:after { .conters:after {
content: ""; content: "";
width: 410px !important; width: 410px !important;
} }
.gridPic { .gridPic {
margin-right: 15px; margin-right: 15px;
margin-bottom: 10px; margin-bottom: 10px;
@ -863,16 +905,19 @@ export default {
height: 110px; height: 110px;
position: relative; position: relative;
cursor: pointer; cursor: pointer;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: block; display: block;
} }
video { video {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: block; display: block;
} }
.num_badge { .num_badge {
position: absolute; position: absolute;
bottom: 6px; bottom: 6px;
@ -888,31 +933,38 @@ export default {
line-height: 20px; line-height: 20px;
} }
} }
.conter { .conter {
width: 99%; width: 99%;
height: 100%; height: 100%;
.bnt { .bnt {
width: 100%; width: 100%;
padding: 0 13px 10px 7px; padding: 0 13px 10px 7px;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
} }
.pictrueList { .pictrueList {
/*padding-left: 15px;*/ /*padding-left: 15px;*/
width: 100%; width: 100%;
el-image { el-image {
width: 100%; width: 100%;
border: 2px solid #fff; border: 2px solid #fff;
} }
.on { .on {
border: 2px solid #1890FF; border: 2px solid #1890FF;
} }
} }
.el-image { .el-image {
width: 110px; width: 110px;
height: 110px; height: 110px;
cursor: pointer; cursor: pointer;
} }
.imagesNo { .imagesNo {
width: 100%; width: 100%;
display: flex; display: flex;
@ -920,6 +972,7 @@ export default {
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin: 65px 0; margin: 65px 0;
.imagesNo_sp { .imagesNo_sp {
font-size: 13px; font-size: 13px;
color: #dbdbdb; color: #dbdbdb;
@ -927,9 +980,11 @@ export default {
} }
} }
} }
.relative { .relative {
position: relative; position: relative;
} }
.abs_video { .abs_video {
position: absolute; position: absolute;
right: 20px; right: 20px;

View File

@ -146,7 +146,7 @@ const operationRouter = {
path: 'freightSet', path: 'freightSet',
component: () => import('@/views/systemSetting/deliverGoods/freightSet'), component: () => import('@/views/systemSetting/deliverGoods/freightSet'),
name: 'freightSet', name: 'freightSet',
meta: { title: '运费模板', noCache: true } meta: { title: '配送模板', noCache: true }
}, },
] ]
}, },

View File

@ -32,10 +32,9 @@
<el-form-item label="视频简介" prop="synopsis"> <el-form-item label="视频简介" prop="synopsis">
<el-input v-model="dataForm.synopsis" placeholder="视频简介"></el-input> <el-input v-model="dataForm.synopsis" placeholder="视频简介"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="详细内容" prop="content"> <!-- <el-form-item label="详细内容" prop="content">-->
<Tinymce v-model="dataForm.content"></Tinymce> <!-- <Tinymce v-model="dataForm.content"></Tinymce>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="关联商品" prop="productId"> <el-form-item label="关联商品" prop="productId">
<div class="acea-row"> <div class="acea-row">
<template v-if="checked.length"> <template v-if="checked.length">

View File

@ -8,7 +8,9 @@
<el-radio-group v-model="tableFrom.dateLimit" type="button" class="mr20" size="small" @change="selectChange(tableFrom.dateLimit)"> <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-button v-for="(item,i) in fromList.fromTxt" :key="i" :label="item.val">{{ item.text }}</el-radio-button>
</el-radio-group> </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>
<el-form-item label="提现状态:"> <el-form-item label="提现状态:">
<el-radio-group v-model="tableFrom.status" type="button" size="small" @change="getList(1)" clearable> <el-radio-group v-model="tableFrom.status" type="button" size="small" @change="getList(1)" clearable>

View File

@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-if="dialogVisible" v-if="dialogVisible"
title="运费模板" title="配送模板"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="1000px" width="1000px"
:before-close="handleClose" :before-close="handleClose"
@ -15,9 +15,10 @@
<el-radio :label="1">按件数</el-radio> <el-radio :label="1">按件数</el-radio>
<el-radio :label="2">按重量</el-radio> <el-radio :label="2">按重量</el-radio>
<el-radio :label="3">按体积</el-radio> <el-radio :label="3">按体积</el-radio>
<el-radio :label="4">按距离</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </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 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"> <el-table-column align="center" label="可配送区域" min-width="260">
<template slot-scope="scope"> <template slot-scope="scope">
@ -42,7 +43,7 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<el-form-item :rules="rules.firstPrice" :prop="'region.'+scope.$index+'.firstPrice'"> <el-form-item :rules="rules.firstPrice" :prop="'region.'+scope.$index+'.firstPrice'">
<el-input-number v-model="scope.row.firstPrice" controls-position="right" /> <el-input-number v-model="scope.row.firstPrice" controls-position="right" />
@ -186,6 +187,7 @@ const defaultRole = {
} }
const kg = '重量kg' const kg = '重量kg'
const m = '体积' const m = '体积'
const km = '公里km'
const statusMap = [ const statusMap = [
{ {
title: '首件', title: '首件',
@ -201,6 +203,11 @@ const statusMap = [
title: `首件${m}`, title: `首件${m}`,
title2: `续件${m}`, title2: `续件${m}`,
title3: `包邮${m}` title3: `包邮${m}`
},
{
title: `${km}`,
title2: `${km}`,
title3: `免费${km}`
} }
] ]
export default { export default {
@ -239,7 +246,7 @@ export default {
{ required: true, message: '请输入', trigger: 'blur' } { required: true, message: '请输入', trigger: 'blur' }
], ],
firstPrice: [ firstPrice: [
{ required: true, message: '请输入费', trigger: 'blur' } { required: true, message: '请输入', trigger: 'blur' }
], ],
renewalPrice: [ renewalPrice: [
{ required: true, message: '请输入续费', trigger: 'blur' } { required: true, message: '请输入续费', trigger: 'blur' }
@ -422,7 +429,7 @@ export default {
name: this.ruleForm.name, name: this.ruleForm.name,
sort: this.ruleForm.sort, sort: this.ruleForm.sort,
type: this.ruleForm.type, type: this.ruleForm.type,
// //
// shippingTemplatesRegionRequestList: [], // shippingTemplatesRegionRequestList: [],
// // // //
// shippingTemplatesFreeRequestList: [] // shippingTemplatesFreeRequestList: []

View File

@ -11,7 +11,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </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> </div>
<el-table <el-table
v-loading="loading" v-loading="loading"
@ -103,7 +103,8 @@ export default {
const statusMap = { const statusMap = {
1: '按件数', 1: '按件数',
2: '按重量', 2: '按重量',
3: '按体积' 3: '按体积',
4: '按距离'
} }
return statusMap[status] return statusMap[status]
} }

View File

@ -1,11 +1,25 @@
<template> <template>
<div class="divBox"> <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-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>
<el-form-item label="活动类型:"> <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="">全部</el-radio-button>
<el-radio-button label="746">活动预约</el-radio-button> <el-radio-button label="746">活动预约</el-radio-button>
<el-radio-button label="752">采茶预约</el-radio-button> <el-radio-button label="752">采茶预约</el-radio-button>
@ -13,26 +27,30 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<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-button v-hasPermi="['autogencode:ebactivity:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table :data="dataList" v-loading="dataListLoading" style="width: 100%;">
:data="dataList"
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column <el-table-column
width="60" width="60"
prop="id" prop="id"
header-align="center" header-align="center"
align="center" align="center"
label="活动编号"> label="活动编号"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="cid" prop="cid"
header-align="center" header-align="center"
align="center" align="center"
label="活动类型"> label="活动类型"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="demo-image__preview"> <div class="demo-image__preview">
<span v-if="scope.row.cid == 746">活动预约</span> <span v-if="scope.row.cid == 746">活动预约</span>
@ -47,14 +65,16 @@
prop="title" prop="title"
header-align="center" header-align="center"
align="center" align="center"
label="标题"> label="标题"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="imageInput" prop="imageInput"
header-align="center" header-align="center"
align="center" align="center"
label="图片"> label="图片"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="demo-image__preview"> <div class="demo-image__preview">
<el-image <el-image
@ -69,19 +89,22 @@
prop="activityAddr" prop="activityAddr"
header-align="center" header-align="center"
align="center" align="center"
label="地址"> label="地址"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="activityNum" prop="activityNum"
header-align="center" header-align="center"
align="center" align="center"
label="活动人数"> label="活动人数"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="activityPrice" prop="activityPrice"
header-align="center" header-align="center"
align="center" align="center"
label="费用"> label="费用"
>
</el-table-column> </el-table-column>
<!-- <el-table-column--> <!-- <el-table-column-->
<!-- prop="content"--> <!-- prop="content"-->
@ -94,23 +117,21 @@
prop="beginTime" prop="beginTime"
header-align="center" header-align="center"
align="center" align="center"
label="开始时间 - 结束时间"> label="开始时间 - 结束时间"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.beginTime }} - {{ scope.row.endTime }} {{ scope.row.beginTime }} - {{ scope.row.endTime }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column header-align="center" align="center" label="是否热门">
header-align="center"
align="center"
label="是否热门">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
@change='changeStatus($event,scope.row,"hot")' @change="changeStatus($event, scope.row, 'hot')"
v-model="scope.row.isHot" v-model="scope.row.isHot"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"> inactive-color="#ff4949"
>
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column--> <!-- <el-table-column-->
@ -130,21 +151,36 @@
prop="sort" prop="sort"
header-align="center" header-align="center"
align="center" align="center"
label="排序"> label="排序"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right" fixed="right"
header-align="center" header-align="center"
align="center" align="center"
width="150" width="150"
label="操作"> label="操作"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button> <el-button
<el-button v-hasPermi="['admin:activity:update']" type="text" size="small" type="text"
@click="activityLog(scope.row.id)">预约记录 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>
<el-button v-hasPermi="['admin:activity:delete']" type="text" size="small" <el-button
@click="deleteHandle(scope.row.id)">删除 v-hasPermi="['admin:activity:delete']"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -156,38 +192,93 @@
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
:page-size="tableFrom.limit" :page-size="tableFrom.limit"
:total="totalPage" :total="totalPage"
layout="total, sizes, prev, pager, next, jumper"> layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination> </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 <el-dialog
@close="closeLog"
title="活动预约记录" title="活动预约记录"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="logVisible" :visible.sync="logVisible"
width="80%" width="80%"
> >
<el-table <el-form :inline="true" size="small" label-width="100px">
:data="logList" <el-form-item label="手机号:" >
style="width: 100%;"> <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 <el-table-column
width="100" width="100"
prop="id" prop="id"
header-align="center" header-align="center"
align="center" align="center"
label="预约编号"> label="预约编号"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="100" width="100"
prop="userName" prop="userName"
header-align="center" header-align="center"
align="center" align="center"
label="预约人"> label="预约人"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="cellPhone" prop="cellPhone"
header-align="center" header-align="center"
align="center" align="center"
label="预约手机号"> label="预约手机号"
>
</el-table-column> </el-table-column>
<!-- <el-table-column--> <!-- <el-table-column-->
<!-- width="120"--> <!-- width="120"-->
@ -201,25 +292,32 @@
prop="registerDate" prop="registerDate"
header-align="center" header-align="center"
align="center" align="center"
label="预约指定日期"> label="预约指定日期"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="remark" prop="remark"
header-align="center" header-align="center"
align="center" align="center"
label="备注"> label="备注"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="registerStatus" prop="registerStatus"
header-align="center" header-align="center"
align="center" align="center"
label="预约状态"> label="预约状态"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="demo-image__preview"> <div class="demo-image__preview">
<el-tag v-if="scope.row.registerStatus == 0">待确认</el-tag> <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 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> <el-tag v-else>未知类型</el-tag>
</div> </div>
</template> </template>
@ -228,7 +326,8 @@
prop="cancelData" prop="cancelData"
header-align="center" header-align="center"
align="center" align="center"
label="取消时间"> label="取消时间"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="demo-image__preview"> <div class="demo-image__preview">
<span v-if="scope.row.cancelData === null"> - </span> <span v-if="scope.row.cancelData === null"> - </span>
@ -240,7 +339,8 @@
prop="cancelReason" prop="cancelReason"
header-align="center" header-align="center"
align="center" align="center"
label="取消原因"> label="取消原因"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div class="demo-image__preview"> <div class="demo-image__preview">
<span v-if="scope.row.cancelReason === null"> - </span> <span v-if="scope.row.cancelReason === null"> - </span>
@ -254,15 +354,32 @@
header-align="center" header-align="center"
align="center" align="center"
width="150" width="150"
label="操作"> label="操作"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-popconfirm v-hasPermi="['admin:activity:update']" @onConfirm="update(scope.row)" v-if="scope.row.registerStatus == 0" <el-popconfirm
title="请在和客户确认之后再点击哦!"> v-hasPermi="['admin:activity:update']"
@onConfirm="update(scope.row)"
v-if="scope.row.registerStatus == 0"
title="请在和客户确认之后再点击哦!"
>
<!-- //todo --> <!-- //todo -->
<template #reference> <template #reference>
<el-button type="text" size="small">同意预约</el-button> <el-button type="text" size="small">同意预约</el-button>
</template> </template>
</el-popconfirm> </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 type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</el-button>-->
<!-- <el-button v-hasPermi="['admin:activity:update']" type="text" size="small"--> <!-- <el-button v-hasPermi="['admin:activity:update']" type="text" size="small"-->
<!-- @click="activityLog(scope.row.id)">预约记录--> <!-- @click="activityLog(scope.row.id)">预约记录-->
@ -277,27 +394,26 @@
background background
layout="prev, pager, next" layout="prev, pager, next"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:total="this.logParams.total"> :total="logParams.total"
>
</el-pagination> </el-pagination>
<span slot="footer" class="dialog-footer"> <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> </span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import {
activityDeleteApi, activityDeleteApi,
activityListApi, activityListApi,
activityLogListApi, activityLogListApi,
ebactivityUpdateApi, ebactivityUpdateApi,
userActivityPlaceListApi userActivityPlaceListApi,
} from "@/api/activity" activityRecordDeleteApi
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update" } from "@/api/activity";
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update";
export default { export default {
data() { data() {
@ -306,91 +422,141 @@ export default {
logVisible: false, logVisible: false,
dataList: [], dataList: [],
logList: [], logList: [],
date: [],
logParams: { logParams: {
activityId: "", activityId: "",
limit: 10, limit: 10,
page: 1, page: 1,
total: 1, total: 1,
cellPhone: "",
userName: ""
}, },
tableFrom: { tableFrom: {
page: 1, page: 1,
limit: 20, limit: 20,
name: '', name: "",
keywords: '', keywords: "",
cid: "", cid: ""
}, },
totalPage: 0, totalPage: 0,
addOrUpdateVisible: false addOrUpdateVisible: false
} };
}, },
components: { components: {
AddOrUpdate AddOrUpdate
}, },
mounted() { mounted() {
this.getDataList() this.getDataList();
}, },
methods: { methods: {
update(row) { deleteRecordHandle(row) {
console.log("确定了") this.$confirm('确定删除当前数据?').then(() => {
console.log(row) activityRecordDeleteApi({ id: row.id }).then(res => {
userActivityPlaceListApi({id:row.id,status:0}).then(res =>{ this.$message.success("删除成功");
this.$message.success("修改成功!"); this.activityLog(this.logParams.activityId);
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) { activityLog(id) {
this.logParams.activityId = id this.logParams.activityId = id;
this.logVisible = true this.logVisible = true;
activityLogListApi(this.logParams).then(res => { this.logParams.page = 1;
this.logParams.limit = res.limit activityLogListApi(
this.logParams.page = res.page Object.assign(
this.logParams.total = res.total { ...this.logParams },
this.logList = res.list 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) { handleCurrentChange(val) {
this.logParams.page = val this.logParams.page = val;
activityLogListApi(this.logParams).then(res => { activityLogListApi(
this.logParams.limit = res.limit Object.assign(
this.logParams.page = res.page { ...this.logParams },
this.logParams.total = res.total this.date && this.date.length > 0
this.logList = res.list ? {
}) 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) { changeStatus($event, val, type) {
if (type === 'banner') { if (type === "banner") {
val.isBanner = $event val.isBanner = $event;
} }
if (type === 'hot') { if (type === "hot") {
val.isHot = $event val.isHot = $event;
} }
ebactivityUpdateApi(val).then(res => { ebactivityUpdateApi(val).then(res => {
this.$message.success("修改成功!"); this.$message.success("修改成功!");
this.getDataList() this.getDataList();
}) });
}, },
addOrUpdateHandle(id) { addOrUpdateHandle(id) {
this.addOrUpdateVisible = true this.addOrUpdateVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(id) this.$refs.addOrUpdate.init(id);
}) });
}, },
deleteHandle(id) { deleteHandle(id) {
this.$confirm('确定删除当前数据?').then(() => { this.$confirm("确定删除当前数据?").then(() => {
activityDeleteApi({ id: id }).then(data => { activityDeleteApi({ id: id }).then(data => {
this.$message.success('删除成功') this.$message.success("删除成功");
this.getDataList() this.getDataList();
}) });
}) });
}, },
sizeChangeHandle(val) { sizeChangeHandle(val) {
this.tableFrom.limit = val this.tableFrom.limit = val;
this.getDataList() this.getDataList();
}, },
currentChangeHandle(page) { currentChangeHandle(page) {
this.tableFrom.page = page this.tableFrom.page = page;
this.getDataList() this.getDataList();
}, },
// //
selectionChangeHandle(val) { selectionChangeHandle(val) {
@ -398,23 +564,19 @@ export default {
}, },
// //
getDataList() { getDataList() {
this.dataListLoading = true this.dataListLoading = true;
activityListApi(this.tableFrom).then(res => { activityListApi(this.tableFrom).then(res => {
// TODO // TODO
this.dataList = res.list this.dataList = res.list;
this.totalPage = res.total this.totalPage = res.total;
this.tableFrom.limit = res.total this.tableFrom.limit = res.limit;
this.tableFrom.page = res.page this.tableFrom.page = res.page;
this.dataListLoading = false this.dataListLoading = false;
}) });
} }
}
} }
};
</script> </script>
<style lang="sass" scoped> <style lang="sass" scoped></style>
</style>

View File

@ -3,26 +3,38 @@
<el-card class="box-card"> <el-card class="box-card">
<div class="clearfix"> <div class="clearfix">
<div class="container"> <div class="container">
<el-form size="small" label-width="100px" > <el-form size="small" label-width="120px" >
<!-- <el-form-item label="预约状态:">--> <el-form-item label="预约状态:">
<!-- <el-radio-group v-model="tableFrom.status" type="button" @change="seachList">--> <el-radio-group v-model="tableFrom.status" type="button" @change="seachList">
<!-- <el-radio-button label="all">全部</el-radio-button>--> <el-radio-button :label="''">全部</el-radio-button>
<!-- <el-radio-button label="unPaid">待确认 </el-radio-button>--> <el-radio-button label="0">待确认 </el-radio-button>
<!-- <el-radio-button label="unPaid">预约成功 </el-radio-button>--> <el-radio-button label="1">预约成功 </el-radio-button>
<!-- <el-radio-button label="unPaid">预约取消 </el-radio-button>--> <el-radio-button label="2">预约取消 </el-radio-button>
<!-- </el-radio-group>--> </el-radio-group>
<!-- </el-form-item>--> </el-form-item>
<el-form-item label="预约人:" class="width100"> <!-- <el-form-item label="预约人:" class="width100">
<el-input v-model="tableFrom.keywords" placeholder="请输入预约人" class="selWidth" size="small" clearable> <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-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
</el-input> </el-input>
</el-form-item> </el-form-item> -->
<el-form-item label="手机号:" class="width100"> <el-form-item label="预约人/手机号:" class="width100">
<el-input v-model="tableFrom.keywords" placeholder="请输入订单号" class="selWidth" size="small" clearable> <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-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
</el-input> </el-input>
</el-form-item> </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> </el-form>
</div> </div>
@ -131,6 +143,7 @@
label="操作"> label="操作">
<template slot-scope="scope"> <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 == 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-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"--> <!-- <el-button v-hasPermi="['admin:activity:update']" type="text" size="small"-->
@ -226,7 +239,8 @@ import {
activityListApi, activityListApi,
activityLogListApi, activityLogListApi,
activityPlaceListApi, activityPlaceUpdateApi, activityPlaceListApi, activityPlaceUpdateApi,
ebactivityUpdateApi ebactivityUpdateApi,
placeDeleteApi
} from "@/api/activity" } from "@/api/activity"
import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update" import AddOrUpdate from "@/views/marketing/activity/activityList/activity-add-and-update"
@ -239,10 +253,13 @@ export default {
mobileVisible: false, mobileVisible: false,
dataList:[], dataList:[],
mobileFrom:{}, mobileFrom:{},
date:[],
totalPage:0,
tableFrom:{ tableFrom:{
page: 1, page: 1,
limit: 20, limit: 20,
keywords: '', keywords: '',
status: ''
} }
} }
}, },
@ -256,6 +273,15 @@ export default {
methods: { methods: {
deleteHandle(row){
this.$confirm('确定删除当前数据?').then(() => {
placeDeleteApi({id:row.id}).then(data => {
this.$message.success('删除成功')
this.getDataList()
})
}).catch(() => {
})
},
seachList() { seachList() {
this.tableFrom.page = 1 this.tableFrom.page = 1
this.getDataList() this.getDataList()
@ -285,11 +311,10 @@ export default {
getDataList(){ getDataList(){
this.dataListLoading = true this.dataListLoading = true
activityPlaceListApi(this.tableFrom).then(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 =>{
console.log(res)
this.dataList = res.list this.dataList = res.list
this.totalPage = res.total this.totalPage = res.total
this.tableFrom.limit = res.total this.tableFrom.limit = res.limit
this.tableFrom.page = res.page this.tableFrom.page = res.page

View File

@ -121,7 +121,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-bind="grid2"> <el-col v-bind="grid2">
<el-form-item label="运费模板:" prop="tempId"> <el-form-item label="配送模板:" prop="tempId">
<div class="acea-row"> <div class="acea-row">
<el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidthd"> <el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidthd">
<el-option <el-option
@ -131,7 +131,7 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
<!--<el-button class="mr15" @click="addTem">添加运费模板</el-button>--> <!--<el-button class="mr15" @click="addTem">添加配送模板</el-button>-->
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -362,7 +362,7 @@
loading: false, loading: false,
fullscreenLoading: false, fullscreenLoading: false,
merCateList: [], // merCateList: [], //
shippingList: [], // shippingList: [], //
seckillTime: [], seckillTime: [],
ruleValidate: { ruleValidate: {
productId: [ productId: [
@ -384,7 +384,7 @@
{ required: true, message: '请输入砍价商品简介', trigger: 'blur' } { required: true, message: '请输入砍价商品简介', trigger: 'blur' }
], ],
tempId: [ tempId: [
{ required: true, message: '请选择运费模板', trigger: 'change' } { required: true, message: '请选择配送模板', trigger: 'change' }
], ],
timeId: [ timeId: [
{ required: true, message: '请选择活动时间', trigger: 'change' } { required: true, message: '请选择活动时间', trigger: 'change' }
@ -523,13 +523,13 @@
return item return item
}) })
}, },
// //
getShippingList() { getShippingList() {
shippingTemplatesList(this.tempData).then(res => { shippingTemplatesList(this.tempData).then(res => {
this.shippingList = res.list this.shippingList = res.list
}) })
}, },
// //
addTem() { addTem() {
this.$refs.addTemplates.dialogVisible = true this.$refs.addTemplates.dialogVisible = true
this.$refs.addTemplates.getCityList() this.$refs.addTemplates.getCityList()

View File

@ -133,7 +133,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-bind="grid2"> <el-col v-bind="grid2">
<el-form-item label="运费模板:" prop="tempId"> <el-form-item label="配送模板:" prop="tempId">
<div class="acea-row"> <div class="acea-row">
<el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidthd"> <el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidthd">
<el-option <el-option
@ -143,7 +143,7 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
<!--<el-button class="mr15" @click="addTem">添加运费模板</el-button>--> <!--<el-button class="mr15" @click="addTem">添加配送模板</el-button>-->
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -369,7 +369,7 @@
loading: false, loading: false,
fullscreenLoading: false, fullscreenLoading: false,
merCateList: [], // merCateList: [], //
shippingList: [], // shippingList: [], //
seckillTime: [], seckillTime: [],
ruleValidate: { ruleValidate: {
productId: [ productId: [
@ -391,7 +391,7 @@
{ required: true, message: '请输入拼团商品简介', trigger: 'blur' } { required: true, message: '请输入拼团商品简介', trigger: 'blur' }
], ],
tempId: [ tempId: [
{ required: true, message: '请选择运费模板', trigger: 'change' } { required: true, message: '请选择配送模板', trigger: 'change' }
], ],
image: [ image: [
{ required: true, message: '请上传商品图', trigger: 'change' } { required: true, message: '请上传商品图', trigger: 'change' }
@ -532,13 +532,13 @@
return item return item
}) })
}, },
// //
getShippingList() { getShippingList() {
shippingTemplatesList(this.tempData).then(res => { shippingTemplatesList(this.tempData).then(res => {
this.shippingList = res.list this.shippingList = res.list
}) })
}, },
// //
addTem() { addTem() {
this.$refs.addTemplates.dialogVisible = true this.$refs.addTemplates.dialogVisible = true
this.$refs.addTemplates.getCityList() this.$refs.addTemplates.getCityList()

View File

@ -86,7 +86,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-bind="grid2"> <el-col v-bind="grid2">
<el-form-item label="运费模板:" prop="tempId"> <el-form-item label="配送模板:" prop="tempId">
<div class="acea-row"> <div class="acea-row">
<el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidth"> <el-select v-model="formValidate.tempId" placeholder="请选择" class="selWidth">
<el-option <el-option
@ -96,7 +96,7 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
<!--<el-button class="mr15" @click="addTem">添加运费模板</el-button>--> <!--<el-button class="mr15" @click="addTem">添加配送模板</el-button>-->
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -345,7 +345,7 @@
loading: false, loading: false,
fullscreenLoading: false, fullscreenLoading: false,
merCateList: [], // merCateList: [], //
shippingList: [], // shippingList: [], //
seckillTime: [], seckillTime: [],
ruleValidate: { ruleValidate: {
productId: [ productId: [
@ -367,7 +367,7 @@
{ required: true, message: '请输入秒杀商品简介', trigger: 'blur' } { required: true, message: '请输入秒杀商品简介', trigger: 'blur' }
], ],
tempId: [ tempId: [
{ required: true, message: '请选择运费模板', trigger: 'change' } { required: true, message: '请选择配送模板', trigger: 'change' }
], ],
timeId: [ timeId: [
{ required: true, message: '请选择活动时间', trigger: 'change' } { required: true, message: '请选择活动时间', trigger: 'change' }
@ -496,13 +496,13 @@
return item return item
}) })
}, },
// //
getShippingList() { getShippingList() {
shippingTemplatesList(this.tempData).then(res => { shippingTemplatesList(this.tempData).then(res => {
this.shippingList = res.list this.shippingList = res.list
}) })
}, },
// //
addTem() { addTem() {
this.$refs.addTemplates.dialogVisible = true this.$refs.addTemplates.dialogVisible = true
this.$refs.addTemplates.getCityList() this.$refs.addTemplates.getCityList()

View File

@ -49,6 +49,21 @@
</div> </div>
</template> </template>
</el-table-column> </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 <el-table-column
prop="productPrice" prop="productPrice"

View File

@ -21,6 +21,8 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="茶树图" prop="productImage"> <el-form-item label="茶树图" prop="productImage">
@ -33,6 +35,17 @@
</div> </div>
</el-form-item> </el-form-item>
</el-col> </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-col :span="6">
<el-form-item label="小苗阶段图" prop="smallImage"> <el-form-item label="小苗阶段图" prop="smallImage">
@ -123,14 +136,14 @@
</el-form-item> </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-switch v-model="dataForm.hotImage" :active-value="1" :inactive-value="0"></el-switch>
</el-form-item> </el-form-item> -->
<el-form-item label="认领状态" prop="status"> <!-- <el-form-item label="认领状态" prop="status">
<el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0"></el-switch> <el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0"></el-switch>
</el-form-item> </el-form-item> -->
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button> <el-button @click="visible = false">取消</el-button>
@ -171,7 +184,8 @@ export default {
createTime: '', createTime: '',
updateTime: '', updateTime: '',
status: 1, status: 1,
limitNum: '' limitNum: '',
viceImage:'',
}, },
dataRule: { dataRule: {
title: [ title: [
@ -180,6 +194,9 @@ export default {
productImage: [ productImage: [
{required: true, message: '茶树图 为必填项', trigger: 'blur'} {required: true, message: '茶树图 为必填项', trigger: 'blur'}
], ],
viceImage: [
{required: true, message: '背景图 为必填项', trigger: 'blur'}
],
productName: [ productName: [
{required: true, message: '茶树名称 为必填项', trigger: 'blur'} {required: true, message: '茶树名称 为必填项', trigger: 'blur'}
], ],
@ -250,6 +267,9 @@ export default {
case 'pi5': case 'pi5':
_this.dataForm.productImage = img[0].sattDir; _this.dataForm.productImage = img[0].sattDir;
break; break;
case 'pi7':
_this.dataForm.viceImage = img[0].sattDir;
break;
} }
} }
}, tit, 'content'); }, tit, 'content');
@ -273,15 +293,19 @@ export default {
if (!this.dataForm.id){ if (!this.dataForm.id){
plantCreateApi(this.dataForm).then(res => { plantCreateApi(this.dataForm).then(res => {
this.$message.success('添加成功') this.$message.success('添加成功')
setTimeout(() => {
this.$router.go(0);
}, 1000);
}); });
}else { }else {
plantUpdateApi(this.dataForm).then(res => { plantUpdateApi(this.dataForm).then(res => {
this.$message.success('更新成功') this.$message.success('更新成功')
setTimeout(() => {
this.$router.go(0);
}, 1000);
}); });
} }
this.$router.go(0);
} }
}) })
} }

View File

@ -10,12 +10,11 @@
<el-radio-group v-model="tableFrom.itemStatus" size="medium" @input="getDataList()"> <el-radio-group v-model="tableFrom.itemStatus" size="medium" @input="getDataList()">
<el-radio-button label="">全部</el-radio-button> <el-radio-button label="">全部</el-radio-button>
<el-radio-button label=0>待确认</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-button label="2">已成熟</el-radio-button>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<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: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-button v-hasPermi="['autogencode:ebteaplantorderitem:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>-->
</el-form-item> </el-form-item>
@ -31,12 +30,12 @@
align="center" align="center"
label="认领凭证"> label="认领凭证">
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column-->
prop="account" <!-- prop="account"-->
header-align="center" <!-- header-align="center"-->
align="center" <!-- align="center"-->
label="手机号"> <!-- label="手机号">-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column <el-table-column
prop="productImage" prop="productImage"
header-align="center" header-align="center"
@ -58,12 +57,7 @@
align="center" align="center"
label="商品名称"> label="商品名称">
</el-table-column> </el-table-column>
<el-table-column
prop="account"
header-align="center"
align="center"
label="商品名称">
</el-table-column>
<el-table-column <el-table-column
prop="productPrice" prop="productPrice"
header-align="center" header-align="center"
@ -89,33 +83,41 @@
label="结束时间"> label="结束时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="status"
header-align="center" header-align="center"
align="center" align="center"
label="认领状态"> label="认领状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.status == 0" style="color: red"> 待确认</span> <span v-if="scope.row.itemStatus == 0" style="color: #f87d3f;font-weight: 700;font-size: 16px"> 待确认</span>
<span v-if="scope.row.status == 1" style="color: blue"> 成长</span> <span v-if="scope.row.itemStatus == 1" style="color: blue"> 认领</span>
<span v-else style="color: green"> 已成熟</span> <span v-if="scope.row.itemStatus == 2" style="color: green"> 已成熟</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="createTime"
header-align="center" header-align="center"
align="center" align="center"
width="180" label="剩余天数">
label="创建时间">
</el-table-column>
<el-table-column
header-align="center"
align="center"
label="支付状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.payStatus == 0" style="color: red"> 待支付</span> <span>{{calculateRemainingDays(scope.row.beginTime,scope.row.endTime)}} </span>
<span v-if="scope.row.payStatus == 1" > 已支付</span>
<span v-else style="color: #be64a1"> 未知状态</span>
</template> </template>
</el-table-column> </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 <el-table-column
fixed="right" fixed="right"
header-align="center" header-align="center"
@ -123,8 +125,17 @@
width="150" width="150"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(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="deleteHandle(scope.row.id)">删除</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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -139,13 +150,15 @@
</el-pagination> </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>
<sure-update v-if="sureOrUpdateVisible" ref="sureUpdate" @refreshDataList="getDataList"></sure-update>
</div> </div>
</template> </template>
<script> <script>
import AddOrUpdate from '@/views/marketing/tree/order/orde-add-and-update' import AddOrUpdate from '@/views/marketing/tree/order/orde-add-and-update'
import * as api from '@/api/plantorder' import SureUpdate from '@/views/marketing/tree/order/orde-add-sure.vue'
import {plantOrderListApi} from "@/api/plantorder"; import {plantorderDeleteApi, plantOrderListApi} from "@/api/plantorder";
import {plantDeleteApi} from "@/api/plant";
export default { export default {
data () { data () {
return { return {
@ -161,19 +174,33 @@ import {plantOrderListApi} from "@/api/plantorder";
totalPage: 0, totalPage: 0,
dataListLoading: false, dataListLoading: false,
dataListSelections: [], dataListSelections: [],
addOrUpdateVisible: false addOrUpdateVisible: false,
sureOrUpdateVisible: false
} }
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
SureUpdate
}, },
created () { created () {
this.getDataList() this.getDataList()
}, },
methods: { 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 () { getDataList () {
this.dataListLoading = true this.dataListLoading = true
this.tableFrom.limit= 20
plantOrderListApi(this.tableFrom).then(res => { plantOrderListApi(this.tableFrom).then(res => {
this.dataList = res.list this.dataList = res.list
this.totalPage = res.total this.totalPage = res.total
@ -204,22 +231,87 @@ import {plantOrderListApi} from "@/api/plantorder";
this.$refs.addOrUpdate.init(id) this.$refs.addOrUpdate.init(id)
}) })
}, },
//
sureOrUpdateHandle (id) {
this.sureOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.sureUpdate.init(id)
})
},
// //
deleteHandle (id) { deleteHandle (id) {
// var ids = id ? [id] : this.dataListSelections.map(item => { console.log(id)
// return item.id this.$confirm(`您确定对[id=id] 删除操作?`, '提示', {
// }) confirmButtonText: '确定',
// this.$confirm(`[id=${ids.join(',')}][${id ? '' : ''}]?`, '', { cancelButtonText: '取消',
// confirmButtonText: '', type: 'warning'
// cancelButtonText: '', }).then(() => {
// type: 'warning' plantorderDeleteApi({id: id}).then(res => {
// }).then(() => { // TODO
// api.ebteaplantorderitemDeleteApi(id).then(res => { this.getDataList()
// // TODO this.$message.success('删除成功!')
// }) })
// }) })
// })
} }
} }
} }
</script> </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>

View 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>

View File

@ -72,8 +72,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="18" :sm="18" :md="18" :lg="12" :xl="12"> <el-col :xs="18" :sm="18" :md="18" :lg="12" :xl="12">
<el-form-item label="运费模板:" prop="tempId"> <el-form-item label="配送模板:" prop="tempId">
<el-select v-model="formValidate.tempId" placeholder="请选择" class="mr20" :disabled="isDisabled" style="width:100%;"> <el-select v-model="formValidate.tempId" placeholder="请选择" class="mr20" style="width:100%;">
<el-option <el-option
v-for="item in shippingList" v-for="item in shippingList"
:key="item.id" :key="item.id"
@ -84,7 +84,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="6" :sm="6" :md="6" :lg="12" :xl="12"> <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>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="商品规格:" props="specType"> <el-form-item label="商品规格:" props="specType">
@ -93,9 +93,9 @@
<el-radio :label="true">多规格</el-radio> <el-radio :label="true">多规格</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </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-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 :label="false">默认设置</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
@ -422,8 +422,8 @@
otPrice: 0, otPrice: 0,
stock: 0, stock: 0,
barCode: '', barCode: '',
weight: 0, // weight: 0,
volume: 0 // volume: 0
}], }],
attr: [], attr: [],
selectRule: '', selectRule: '',
@ -433,7 +433,7 @@
id: 0, id: 0,
couponIds: [], couponIds: [],
coupons: [], coupons: [],
activity: ['默认','秒杀','砍价','拼团'] activity: ['默认','秒杀']
} }
const objTitle = { const objTitle = {
price: { price: {
@ -451,12 +451,12 @@
barCode: { barCode: {
title: '商品编号' title: '商品编号'
}, },
weight: { // weight: {
title: '重量KG' // title: 'KG'
}, // },
volume: { // volume: {
title: '体积(m³)' // title: '(m³)'
} // }
} }
export default { export default {
name: 'ProductProductAdd', name: 'ProductProductAdd',
@ -464,7 +464,7 @@
data() { data() {
return { return {
isDisabled: this.$route.params.isDisabled==='1'?true:false, isDisabled: this.$route.params.isDisabled==='1'?true:false,
activity: { '默认': 'red', '秒杀': 'blue', '砍价': 'green', '拼团': 'yellow' }, activity: { '默认': 'red', '秒杀': 'blue' },
props2: { props2: {
children: 'child', children: 'child',
label: 'name', label: 'name',
@ -482,7 +482,7 @@
ManyAttrValue: [Object.assign({}, defaultObj.attrValue[0])], // ManyAttrValue: [Object.assign({}, defaultObj.attrValue[0])], //
ruleList: [], ruleList: [],
merCateList: [], // merCateList: [], //
shippingList: [], // shippingList: [], //
formThead: Object.assign({}, objTitle), formThead: Object.assign({}, objTitle),
formValidate: Object.assign({}, defaultObj), formValidate: Object.assign({}, defaultObj),
formDynamics: { formDynamics: {
@ -535,7 +535,7 @@
{ required: true, message: '请输入商品简介', trigger: 'blur' } { required: true, message: '请输入商品简介', trigger: 'blur' }
], ],
tempId: [ tempId: [
{ required: true, message: '请选择运费模板', trigger: 'change' } { required: true, message: '请选择配送模板', trigger: 'change' }
], ],
image: [ image: [
{ required: true, message: '请上传商品图', trigger: 'change' } { required: true, message: '请上传商品图', trigger: 'change' }
@ -706,8 +706,8 @@
otPrice: 0, otPrice: 0,
stock: 0, stock: 0,
barCode: '', barCode: '',
weight: 0, // weight: 0,
volume: 0, // volume: 0,
brokerage: 0, brokerage: 0,
brokerage_two: 0 brokerage_two: 0
} }
@ -737,8 +737,8 @@
otPrice: 0, otPrice: 0,
stock: 0, stock: 0,
barCode: '', barCode: '',
weight: 0, // weight: 0,
volume: 0, // volume: 0,
brokerage: 0, brokerage: 0,
brokerage_two: 0, brokerage_two: 0,
attrValue: { [v['attrName']]: vv } attrValue: { [v['attrName']]: vv }
@ -756,7 +756,7 @@
return res return res
} }
}, },
// //
addTem() { addTem() {
this.$refs.addTemplates.dialogVisible = true this.$refs.addTemplates.dialogVisible = true
this.$refs.addTemplates.getCityList() this.$refs.addTemplates.getCityList()
@ -823,7 +823,7 @@
this.ruleList = list this.ruleList = list
}) })
}, },
// //
getShippingList() { getShippingList() {
shippingTemplatesList(this.tempData).then(res => { shippingTemplatesList(this.tempData).then(res => {
this.shippingList = res.list this.shippingList = res.list
@ -870,8 +870,8 @@
this.$set(val, 'otPrice', this.oneFormBatch[0].otPrice) this.$set(val, 'otPrice', this.oneFormBatch[0].otPrice)
this.$set(val, 'stock', this.oneFormBatch[0].stock) this.$set(val, 'stock', this.oneFormBatch[0].stock)
this.$set(val, 'barCode', this.oneFormBatch[0].barCode) this.$set(val, 'barCode', this.oneFormBatch[0].barCode)
this.$set(val, 'weight', this.oneFormBatch[0].weight) // this.$set(val, 'weight', this.oneFormBatch[0].weight)
this.$set(val, 'volume', this.oneFormBatch[0].volume) // this.$set(val, 'volume', this.oneFormBatch[0].volume)
this.$set(val, 'brokerage', this.oneFormBatch[0].brokerage) this.$set(val, 'brokerage', this.oneFormBatch[0].brokerage)
this.$set(val, 'brokerageTwo', this.oneFormBatch[0].brokerageTwo) this.$set(val, 'brokerageTwo', this.oneFormBatch[0].brokerageTwo)
} }
@ -984,7 +984,7 @@
ficti: info.ficti, ficti: info.ficti,
coupons: info.coupons, coupons: info.coupons,
couponIds: info.couponIds, couponIds: info.couponIds,
activity: info.activityStr ? info.activityStr.split(',') : ['默认','秒杀','砍价','拼团'] activity: info.activityStr ? info.activityStr.split(',') : ['默认','秒杀']
} }
marketingSendApi({type:3}).then(res=>{ marketingSendApi({type:3}).then(res=>{
if(this.formValidate.couponIds !== null){ if(this.formValidate.couponIds !== null){

View File

@ -62,7 +62,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-bind="grid"> <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-select v-model="formValidate.tempId" placeholder="请选择" class="selWidth">
<el-option <el-option
v-for="item in shippingList" v-for="item in shippingList"
@ -319,7 +319,7 @@
{required: true, message: '请输入单位', trigger: 'blur'} {required: true, message: '请输入单位', trigger: 'blur'}
], ],
tempId: [ tempId: [
{required: true, message: '请选择运费模板', trigger: 'change', type: 'number'} {required: true, message: '请选择配送模板', trigger: 'change', type: 'number'}
], ],
keyword: [ keyword: [
{required: true, message: '请输入商品关键字', trigger: 'blur'} {required: true, message: '请输入商品关键字', trigger: 'blur'}
@ -485,7 +485,7 @@
return res return res
} }
}, },
// //
productGetTemplate() { productGetTemplate() {
shippingTemplatesList(this.tempData).then(res => { shippingTemplatesList(this.tempData).then(res => {
this.shippingList = res.list this.shippingList = res.list

View File

@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-if="dialogVisible" v-if="dialogVisible"
title="运费模板" title="配送模板"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="1000px" width="1000px"
:before-close="handleClose" :before-close="handleClose"
@ -15,9 +15,10 @@
<el-radio :label="1">按件数</el-radio> <el-radio :label="1">按件数</el-radio>
<el-radio :label="2">按重量</el-radio> <el-radio :label="2">按重量</el-radio>
<el-radio :label="3">按体积</el-radio> <el-radio :label="3">按体积</el-radio>
<el-radio :label="4">按距离</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </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 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"> <el-table-column align="center" label="可配送区域" min-width="260">
<template slot-scope="scope"> <template slot-scope="scope">
@ -42,7 +43,7 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<el-form-item :rules="rules.firstPrice" :prop="'region.'+scope.$index+'.firstPrice'"> <el-form-item :rules="rules.firstPrice" :prop="'region.'+scope.$index+'.firstPrice'">
<el-input-number v-model="scope.row.firstPrice" controls-position="right" :min="0" /> <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"/> <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> </template>
</el-table-column> </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}"> <template slot-scope="{row}">
<el-input-number v-model="row.price" controls-position="right" /> <el-input-number v-model="row.price" controls-position="right" />
</template> </template>
@ -187,6 +188,7 @@ const defaultRole = {
} }
const kg = '重量kg' const kg = '重量kg'
const m = '体积' const m = '体积'
const km = '公里km'
const statusMap = [ const statusMap = [
{ {
title: '首件', title: '首件',
@ -202,6 +204,11 @@ const statusMap = [
title: `首件${m}`, title: `首件${m}`,
title2: `续件${m}`, title2: `续件${m}`,
title3: `包邮${m}` title3: `包邮${m}`
},
{
title: `${km}`,
title2: `${km}`,
title3: `免费${km}`
} }
] ]
export default { export default {
@ -240,7 +247,7 @@ export default {
{ required: true, message: '请输入', trigger: 'blur' } { required: true, message: '请输入', trigger: 'blur' }
], ],
firstPrice: [ firstPrice: [
{ required: true, message: '请输入费', trigger: 'blur' } { required: true, message: '请输入', trigger: 'blur' }
], ],
renewalPrice: [ renewalPrice: [
{ required: true, message: '请输入续费', trigger: 'blur' } { required: true, message: '请输入续费', trigger: 'blur' }
@ -262,6 +269,7 @@ export default {
title2: '续件', title2: '续件',
title3: '包邮件数' title3: '包邮件数'
}, },
isShowPrice: true,
tempId: 0, tempId: 0,
type: 0 // 0 1 type: 0 // 0 1
} }
@ -310,6 +318,11 @@ export default {
}, },
changeRadio(num) { changeRadio(num) {
this.columns = Object.assign({}, statusMap[num - 1]) this.columns = Object.assign({}, statusMap[num - 1])
if (num === 4) {
this.isShowPrice = false;
} else {
this.isShowPrice = true;
}
}, },
// //
addRegion(region) { addRegion(region) {
@ -423,7 +436,7 @@ export default {
name: this.ruleForm.name, name: this.ruleForm.name,
sort: this.ruleForm.sort, sort: this.ruleForm.sort,
type: this.ruleForm.type, type: this.ruleForm.type,
// //
// shippingTemplatesRegionRequestList: [], // shippingTemplatesRegionRequestList: [],
// // // //
// shippingTemplatesFreeRequestList: [] // shippingTemplatesFreeRequestList: []

View File

@ -11,7 +11,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </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> </div>
<el-table <el-table
v-loading="loading" v-loading="loading"
@ -108,7 +108,8 @@ export default {
const statusMap = { const statusMap = {
1: '按件数', 1: '按件数',
2: '按重量', 2: '按重量',
3: '按体积' 3: '按体积',
4: '按距离'
} }
return statusMap[status] return statusMap[status]
} }

View File

@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-if="dialogVisible" v-if="dialogVisible"
title="运费模板" title="配送模板"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="1000px" width="1000px"
:before-close="handleClose" :before-close="handleClose"
@ -15,9 +15,10 @@
<el-radio :label="1">按件数</el-radio> <el-radio :label="1">按件数</el-radio>
<el-radio :label="2">按重量</el-radio> <el-radio :label="2">按重量</el-radio>
<el-radio :label="3">按体积</el-radio> <el-radio :label="3">按体积</el-radio>
<el-radio :label="4">按距离</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </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 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"> <el-table-column align="center" label="可配送区域" min-width="260">
<template slot-scope="scope"> <template slot-scope="scope">
@ -186,6 +187,7 @@ const defaultRole = {
} }
const kg = '重量kg' const kg = '重量kg'
const m = '体积' const m = '体积'
const km = '公里km'
const statusMap = [ const statusMap = [
{ {
title: '首件', title: '首件',
@ -201,6 +203,11 @@ const statusMap = [
title: `首件${m}`, title: `首件${m}`,
title2: `续件${m}`, title2: `续件${m}`,
title3: `包邮${m}` title3: `包邮${m}`
},
{
title: `${km}`,
title2: `${km}`,
title3: `免费${km}`
} }
] ]
export default { export default {

View File

@ -11,7 +11,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<el-button type="primary" size="mini" @click="handleSubmit()">添加运费模板</el-button> <el-button type="primary" size="mini" @click="handleSubmit()">添加配送模板</el-button>
</div> </div>
<el-table <el-table
v-loading="loading" v-loading="loading"
@ -107,7 +107,8 @@ export default {
const statusMap = { const statusMap = {
1: '按件数', 1: '按件数',
2: '按重量', 2: '按重量',
3: '按体积' 3: '按体积',
4: '按距离'
} }
return statusMap[status] return statusMap[status]
} }