From 8af3db52a632968206ca2bc7f9bd6b4662350232 Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期二, 25 六月 2024 11:50:18 +0800
Subject: [PATCH] 商品管理
---
environments/index.js | 13 -
pages/login/farmer-login.vue | 5
pages/farmer/flower-manage/flower-add.vue | 191 ++++++++++++-------------------
mixin/mixin.js | 4
pages/farmer/flower-manage/flower-manage.vue | 110 ++++++++++++++++-
store/index.js | 8
6 files changed, 193 insertions(+), 138 deletions(-)
diff --git a/environments/index.js b/environments/index.js
index d716832..32acfb1 100644
--- a/environments/index.js
+++ b/environments/index.js
@@ -22,16 +22,9 @@
// export default environments['dev']
export default {
- httpBaseUri: 'http://localhost:8084',
- httpBaseUri: 'http://bio51-api.fixbug.fun',
- // https://api.bio1751.com/swagger-ui.html
- httpBaseUri: 'https://api.bio1751.com',
- httpBaseUri: 'http://localhost:8084',
- httpBaseUri: 'http://39.106.36.7:8081',
- // httpBaseUri: 'https://bewy-api.fixbug.fun',
-
-
- httpBaseUri: 'https://www.doggooo.com',
+ // httpBaseUri: 'http://localhost:8084',
+ httpBaseUri: 'http://106.14.123.210:8080/flower',
+ // http://106.14.123.210:8080/flower/swagger-ui.html#/
// httpBaseUri: 'http://121.196.214.70',
// httpBaseUri: 'http://localhost:8084',
// httpBaseUri:'http://39.103.237.67:80',
diff --git a/mixin/mixin.js b/mixin/mixin.js
index 7459a6f..e3db599 100644
--- a/mixin/mixin.js
+++ b/mixin/mixin.js
@@ -255,6 +255,10 @@
}
return true
},
+ async refreshList(){
+ this.page.current = 1
+ await this.getList()
+ },
async getList() {
if (this.listApi) {
this.$message.showLoading()
diff --git a/pages/farmer/flower-manage/flower-add.vue b/pages/farmer/flower-manage/flower-add.vue
index bf2fb5f..421428e 100644
--- a/pages/farmer/flower-manage/flower-add.vue
+++ b/pages/farmer/flower-manage/flower-add.vue
@@ -3,12 +3,12 @@
<view>
<view class="form-item">
<view class="label required">商品分类</view>
- <view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
+ <view class="m-l-a m-r-0 flex " :class="[!dto.category?'desc-gray':'']" @click="()=>{
if(!id){
- show_select_type=true
+ show_select_category=true
}
}">
- <view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view>
+ <view>{{dto.categoryStr||dto.category || '请选择'}}</view>
<u-icon class="m-l-a" name="arrow-right"></u-icon>
</view>
@@ -112,16 +112,16 @@
</view>
-
-
- <view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit">
+ <view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit" v-if="!dto.id">
提交审核
</view>
-
+ <view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit" v-if="dto.id">
+ 修改
+ </view>
</view>
- <u-picker @confirm="select_type" keyName="label" @cancel="show_select_type=false" :show="show_select_type"
+ <u-picker @confirm="select_category" keyName="label" @cancel="show_select_category=false" :show="show_select_category"
:columns="columns_types"></u-picker>
<u-picker @confirm="select_user" keyName="label" @cancel="show_select_user=false" :show="show_select_user"
@@ -133,7 +133,6 @@
<script>
import environments from '@/environments'
- import xflSelect from '@/components/xfl-select/xfl-select.vue'; //导入
import {
mapState
@@ -144,76 +143,63 @@
data() {
return {
id: '',
- orderId: '',
- show_addlog: false,
- log_remarks: '',
- refresh: false,
- api: '',
dto: {
id: '',
- applicationType: '',
+ name: '',
+ category: '',
+ unit: '',
+ color: '',
+ cover: '',
+ bannerList: [], //str[]
+ video: '',
+ level: '', //FLOWER_LEVEL
+ price: 0.00,
+ stock: 0,
+ params: [], //id,value
},
- show_select_type: false,
+ show_select_category: false,
show_select_user: false,
- columns_types: [],
- audit_remarks: '',
- audit_result: false,
- show_audit: false,
-
-
- //审核方式
- shTypeList: [{
- name: '身份证',
- disabled: false
- },
- {
- name: '营业执照',
- disabled: false
- }
- ],
- radiovalue1: '身份证',
+ columns_categorys: [],
+ columns_levels:[],
}
},
- onLoad(options) {
+ async onLoad(options) {
if (options.id) {
this.id = options.id
this.getDetail()
} else {
- // this.$http.request('get', '/api/personnel/employee/list', {
- // params: {
- // size: 4000,
- // current: 1
- // }
- // }).then(res => {
- // this.userListAll = (res.data && res.data.records || []).map(item => {
- // item.label = item.label || item.name || item.nickName || item.loginName || '-'
- // return item
- // })
- // var index = 0
- // this.userList = this.userListAll.map(item => {
- // index += 1
- // return `${index}.` + item.label + (item.tel ? `(${item.tel})` : '')
- // })
- // var arr = this.userListAll.map(item => {
- // return {
- // label: item.label + (item.tel ? `(${item.tel})` : ''),
- // value: item.id
- // }
- // })
- // this.userListCols = [arr]
-
- // })
-
-
- this.$http.request('get', '/api/dict/value', {
+ if (options.copyId) {
+ this.id = options.copyId
+ await this.getDetail()
+ this.id = ''
+ delete this.dto.id
+ }
+
+ //tree
+ this.$http.request('get', '/api/flower/category/tree', {
params: {
- typeCode: 'APPLICATION_TYPE'
+ typeCode: 'FLOWER_LEVEL'
}
}).then(res => {
var data = res.data
- this.columns_types = [data || []]
- this.columns_types[0].unshift({
+ this.columns_categorys = [data || []]
+ this.columns_categorys[0].unshift({
+ label: '全部',
+ value: '',
+ children:[]
+ })
+
+ })
+
+ this.$http.request('get', '/api/dict/value', {
+ params: {
+ typeCode: 'FLOWER_LEVEL'
+ }
+ }).then(res => {
+ var data = res.data
+ this.columns_levels = [data || []]
+ this.columns_levels[0].unshift({
label: '全部',
value: ''
})
@@ -226,10 +212,10 @@
methods: {
- select_type(e) {
- this.show_select_type = false
- this.dto.applicationTypeStr = e.value[0].label
- this.dto.applicationType = e.value[0].value
+ select_category(e) {
+ this.show_select_category = false
+ this.dto.categoryStr = e.value[0].label
+ this.dto.category = e.value[0].value
},
select_user(e) {
this.show_select_user = false
@@ -242,16 +228,16 @@
const {
code,
data
- } = await this.$http.request('get', "/api/app/application/get/" + this.id, {})
+ } = await this.$http.request('get', "/api/supplier/flower/list/view?id=" + this.id, {})
if (code == 0) {
this.dto = {
...data,
}
- if (this.dto.applicationDate) {
- this.dto.applicationDate = this.$util.toDate(new Date(this.dto.applicationDate))
- }
- // console.log('this.dto', this.dto)
+ // if (this.dto.applicationDate) {
+ // this.dto.applicationDate = this.$util.toDate(new Date(this.dto.applicationDate))
+ // }
+ // // console.log('this.dto', this.dto)
}
@@ -259,64 +245,41 @@
},
async submit() {
- if (!this.dto.applicationType) {
- this.$message.showToast('未选择类型')
- return
- }
- if (!this.dto.applicationTitle) {
- this.$message.showToast('未填写申请主题')
- return
- }
- if (!this.dto.auditPersonId) {
- this.$message.showToast('未选择审批人')
- return
- }
- await this.$message.confirm(`是否确定提交申请${this.auditPersonName?(",审批人为:"+this.auditPersonName):""}`)
+ // if (!this.dto.applicationType) {
+ // this.$message.showToast('未选择类型')
+ // return
+ // }
+ // if (!this.dto.applicationTitle) {
+ // this.$message.showToast('未填写申请主题')
+ // return
+ // }
+ // if (!this.dto.auditPersonId) {
+ // this.$message.showToast('未选择审批人')
+ // return
+ // }
+ // await this.$message.confirm(`是否确定提交申请${this.auditPersonName?(",审批人为:"+this.auditPersonName):""}`)
// this.$message.showToast('1')
// return
var dto = {
...this.dto,
- applicationDate: this.$util.toDate(new Date()),
- applicantId: this.currentInfo.id
+ // applicationDate: this.$util.toDate(new Date()),
+ // applicantId: this.currentInfo.id
}
this.$message.showLoading()
- const re = await this.$http.request('post', '/api/app/application/create', {
+ const re = await this.$http.request('post', `/api/supplier/flower/list/${this.id?'edit':'new'}`, {
data: dto
})
this.$message.hideLoading()
if (re.code == 2000 || re.code == 0) {
this.$message.showToast('操作成功')
//需要标记加一下
- this.$store.dispatch('sign_add', 'application');
+ // this.$store.dispatch('sign_add', 'application');
this.backpage()
}
},
- async submitAudit() {
- var url = ''
- if (this.audit_result) {
- url = '/api/app/application/audit/pass'
- } else {
- url = '/api/app/application/audit/reject'
- }
- var dto = {
- id: this.id,
- auditRemarks: this.audit_remarks
- }
- this.show_audit = false
- this.$message.showLoading()
- const re = await this.$http.request('post', url, {
- data: dto
- })
- this.$message.hideLoading()
- if (re.code == 2000 || re.code == 0) {
- this.$message.showToast('操作成功')
- this.$store.dispatch('sign_add', 'application');
- this.getDetail()
- }
- },
uploadIcon(key) {
const that = this
uni.chooseImage({
@@ -351,7 +314,7 @@
...mapState(['currentInfo'])
},
components: {
- xflSelect
+
}
}
</script>
diff --git a/pages/farmer/flower-manage/flower-manage.vue b/pages/farmer/flower-manage/flower-manage.vue
index a539a1e..3b6f2db 100644
--- a/pages/farmer/flower-manage/flower-manage.vue
+++ b/pages/farmer/flower-manage/flower-manage.vue
@@ -2,10 +2,10 @@
<view class="flow-manage">
<view class="top-buttons" v-if="type==='all'">
<view @click.stop="clickButton('add')" class="button button-add"></view>
- <view class="button button-search-in"></view>
- <view class="button button-search-unpass"></view>
- <view class="button button-search-inpass"></view>
- <view class="button button-search-delete"></view>
+ <view @click.stop="clickButton('in')" class="button button-search-in"></view>
+ <view @click.stop="clickButton('unpass')" class="button button-search-unpass"></view>
+ <view @click.stop="clickButton('inpass')" class="button button-search-inpass"></view>
+ <view @click.stop="clickButton('delete')" class="button button-search-delete"></view>
</view>
@@ -54,12 +54,13 @@
</view>
<view class="buttons">
- <view class="button">复制</view>
- <view class="button">删除</view>
- <view class="button">下架</view>
+ <view class="button" @click.stop="toDetailAdd(item)">复制</view>
+ <view class="button" @click.stop="buttonDelete(item)">删除</view>
+ <view class="button" @click.stop="buttonStatus(item,'off')" v-if="item.status=='UP'">下架</view>
+ <view class="button" @click.stop="buttonStatus(item,'up')" v-if="item.status=='OFF'">上架</view>
<view class="button" @click.stop="toDetail(item)">编辑</view>
- <view class="button">价格</view>
- <view class="button">库存</view>
+ <view class="button" @click.stop="changeValue(item,'price')">价格</view>
+ <view class="button" @click.stop="changeValue(item,'stock')">库存</view>
</view>
</view>
</view>
@@ -83,7 +84,22 @@
onLoad(options) {
this.type = options.type || 'all'
//todo 根据type切换查询条件
- this.listApi = '/api/ua/announcement/list'
+ if (this.type === 'delete') {
+ this.listApi = '/api/supplier/flower/list/rc'
+
+ } else {
+ this.listApi = '/api/supplier/flower/list'
+ this.query.status = ''
+ if (this.type === 'inpass') {
+ this.query.status = 'PENDING'
+ }
+ if (this.type === 'in') {
+ this.query.status = 'UP'
+ }
+ if (this.type === 'unpass') {
+ this.query.status = 'REJECT'
+ }
+ }
this.getList()
},
onReachBottom() {
@@ -96,11 +112,85 @@
uni.stopPullDownRefresh()
},
methods: {
+ async changeValue(item, key) {
+ const res = await this.$message.confirm(`确定修改此商品的${key==='price'&&'价格'|| key==='stock'&&'库存'}吗`, {
+ editable: true
+ })
+ if(!res.content){
+ this.$message.showToast('输入不能为空')
+ return
+ }
+ var value = ''
+ if(key=='price'){
+ value = parseFloat(res.content).toFixed(2)
+ }else{
+ value = parseInt(res.content)
+ }
+ if(isNaN(value)){
+ this.$message.showToast('输入格式不正确')
+ return
+ }
+ var dto = {
+ id: item.id,
+ }
+ dto[key] = value
+
+
+ this.$message.showLoading()
+ this.$http.request('post', '/api/supplier/flower/list/' + key, {
+ data: dto
+ }).then(res => {
+ if (res.code == 0) {
+ this.$message.showToast('操作成功')
+ item[key] = value
+ }
+ }).finally(() => {
+ this.$message.hideLoading()
+ })
+ },
+ async buttonStatus(item, status) {
+ await this.$message.confirm(`确定${status==='off'?'下降':'上架'}此商品吗`)
+ this.$message.showLoading()
+ this.$http.request('get', '/api/supplier/flower/list/' + status, {
+ params: {
+ id: item.id
+ }
+ }).then(res => {
+ if (res.code == 0) {
+ this.$message.showToast('操作成功')
+ item.status = status
+ item.statusStr = (status == 'off' ? '下架' : '上架')
+ }
+ }).finally(() => {
+ this.$message.hideLoading()
+ })
+ },
+ async buttonDelete(item) {
+ await this.$message.confirm('确定删除此商品吗')
+ this.$message.showLoading()
+ this.$http.request('get', '/api/supplier/flower/list/delete', {
+ params: {
+ id: item.id
+ }
+ }).then(res => {
+ if (res.code == 0) {
+ this.$message.showToast('删除成功')
+ this.refreshList()
+ }
+ }).finally(() => {
+ this.$message.hideLoading()
+ })
+ },
toDetail(item) {
uni.navigateTo({
url: '/pages/farmer/flower-manage/flower-add?id=' + item.id
})
},
+ toDetailAdd(item) {
+ uni.navigateTo({
+ url: '/pages/farmer/flower-manage/flower-add?copyId=' + item.id
+ })
+ },
clickButton(type) {
if (type == 'add') {
//添加页面
diff --git a/pages/login/farmer-login.vue b/pages/login/farmer-login.vue
index 1f71a78..36c80da 100644
--- a/pages/login/farmer-login.vue
+++ b/pages/login/farmer-login.vue
@@ -26,13 +26,15 @@
<view class="t-a input" v-if="loginType=='code'">
- <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" />
+ <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode" />
</view>
<button @tap="login()" class="bottom-button">登 录</button>
<view class="flex">
<view class="topic-font" @click="loginType='code'">手机验证码登录</view>
+ <view class="topic-font" @click="loginType='pwd'">账号密码登录</view>
+
<view class="topic-font m-l-a m-r-0" @click="toReg">前往注册</view>
</view>
</form>
@@ -52,6 +54,7 @@
// password: '12345678',
userName: '',
phoneNumber: '',
+ smsCode:'',
password: '',
checked: false,
loginType: 'pwd', //pwd和code,密码和验证码登录
diff --git a/store/index.js b/store/index.js
index ba31727..fd022d1 100644
--- a/store/index.js
+++ b/store/index.js
@@ -245,16 +245,18 @@
}
return resp
},
- loginShop: async function({
+ loginSupplier: async function({
commit,
dispatch,
state
}, data) {
{
- const resp = await http.request('post', '/api/login/employee', {
+ const resp = await http.request('post', '/api/login/supplier'+(data.phoneNumber?'/phone':''), {
data: {
username: data.username,
- password: data.password
+ password: data.password,
+ tel:data.phoneNumber,
+ smsCode:data.smsCode || ''
},
params: {
clientType: data.clientType || 'app'
--
Gitblit v1.9.3