更新茶树认领

This commit is contained in:
闵宪瑞 2025-01-03 14:11:26 +08:00
parent 10c5e16375
commit eed7744d30
4 changed files with 278 additions and 57 deletions

View File

@ -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,
})
}

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

View File

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

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>