From 563a0f248d37b8820cdb3e46479d7c8c891b3386 Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期三, 26 六月 2024 17:56:33 +0800
Subject: [PATCH] update 子包
---
pages/user/user-info/user-info.vue | 74 ---
common/global.scss | 17
pages/login/farmer-login.vue | 4
pages.json | 113 +++--
sub_pages/farmer/flower-manage/flower-add.vue | 0
sub_pages/farmer/flower-manage/flower-manage.vue | 63 ++
sub_pages/farmer/farmer-info/farmer-info.vue | 163 ++++----
sub_pages/farmer/farmer-reg/farmer-reg.vue | 358 +++++++++++++++++++
sub_pages/farmer/order-sale/order-sale.vue | 0
pages/user/user-pwd/user-pwd.vue | 234 +++++++++++++
pages/user/farmer-user.vue | 31 +
pages/login/login.scss | 2
sub_pages/farmer/order-records/order-records.vue | 0
pages/home/farmer-home.vue | 8
sub_pages/farmer/order-settlement/order-settlement.vue | 0
15 files changed, 840 insertions(+), 227 deletions(-)
diff --git a/common/global.scss b/common/global.scss
index 82d22b4..c06dcfa 100644
--- a/common/global.scss
+++ b/common/global.scss
@@ -54,7 +54,14 @@
color: #696969;
}
}
-
+.component-line-vert{
+ width: 2rpx;
+ background-color: #EEEEEE;
+}
+.component-popup_input.white{
+ background: #fff;
+
+}
.component-popup_input{
margin: 0 auto;
margin-top: calc(50% + 200rpx);
@@ -66,6 +73,14 @@
border-radius: 16rpx;
padding: 26rpx;
position: relative;
+ .title{
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #333333;
+ line-height: 42rpx;
+ text-align: center;
+ margin-bottom: 32rpx;
+ }
.uni-easyinput{
width: auto !important;
}
diff --git a/pages.json b/pages.json
index 9c356b7..65fcb7f 100644
--- a/pages.json
+++ b/pages.json
@@ -49,66 +49,85 @@
},
{
- "path": "pages/login/farmer-reg",
+ "path": "pages/notice/notice",
"style": {
- "navigationBarTitleText": "申请入住",
- "enablePullDownRefresh": true
- }
- },
- {
- "path": "pages/farmer/order-settlement/order-settlement",
- "style": {
- "navigationBarTitleText": "账单结算",
- "enablePullDownRefresh": true
- }
- },
- {
- "path": "pages/farmer/flower-manage/flower-manage",
- "style": {
- "navigationBarTitleText": "商品管理",
- "enablePullDownRefresh": true
- }
- },
- {
- "path": "pages/farmer/order-sale/order-sale",
- "style": {
- "navigationBarTitleText": "售后理赔",
- "enablePullDownRefresh": true
- }
- },
- {
- "path": "pages/farmer/order-records/order-records",
- "style": {
- "navigationBarTitleText": "扣款记录",
- "enablePullDownRefresh": false,
- "navigationBarBackgroundColor": "#E6F2EB"
-
- }
- },
- {
- "path": "pages/farmer/flower-manage/flower-add",
- "style": {
- "navigationBarTitleText": "",
+ "navigationBarTitleText": "通知公告",
"enablePullDownRefresh": false
}
},
{
- "path" : "pages/notice/notice",
- "style" :
- {
- "navigationBarTitleText" : "通知公告",
- "enablePullDownRefresh" : false
+ "path": "pages/notice/list",
+ "style": {
+ "navigationBarTitleText": "通知公告",
+ "enablePullDownRefresh": true
}
},
{
- "path" : "pages/notice/list",
+ "path" : "pages/user/user-pwd/user-pwd",
"style" :
{
- "navigationBarTitleText" : "通知公告",
- "enablePullDownRefresh" : true
+ "navigationBarTitleText" : "修改密码",
+ "enablePullDownRefresh" : false
}
}
],
+
+ "subPackages": [{
+ "root": "sub_pages/farmer",
+ "pages": [{
+ "path": "farmer-info/farmer-info",
+ "style": {
+ "navigationBarTitleText": "信息维护",
+ "enablePullDownRefresh": false
+ }
+ }, {
+ "path": "order-settlement/order-settlement",
+ "style": {
+ "navigationBarTitleText": "账单结算",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "flower-manage/flower-manage",
+ "style": {
+ "navigationBarTitleText": "商品管理",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "order-sale/order-sale",
+ "style": {
+ "navigationBarTitleText": "售后理赔",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "order-records/order-records",
+ "style": {
+ "navigationBarTitleText": "扣款记录",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#E6F2EB"
+
+ }
+ },
+ {
+ "path": "flower-manage/flower-add",
+ "style": {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "farmer-reg/farmer-reg",
+ "style": {
+ "navigationBarTitleText": "申请入住",
+ "navigationStyle": "custom"
+ }
+ }
+ ]
+
+
+ }],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
diff --git a/pages/home/farmer-home.vue b/pages/home/farmer-home.vue
index 56a6f9e..458f928 100644
--- a/pages/home/farmer-home.vue
+++ b/pages/home/farmer-home.vue
@@ -101,28 +101,28 @@
<view class="item-container">
<view class="title">常用功能</view>
<view class="flex order-icons m-t-12">
- <view class="nav row margin-tb" @click="goto('/pages/farmer/order-settlement/order-settlement',true)">
+ <view class="nav row margin-tb" @click="goto('/sub_pages/farmer/order-settlement/order-settlement',true)">
<view class="img-c">
<image class="icon margin-bottom order-icon zdjs"
src="/static/images/farmer/user/user-icon-kkjl.png" mode="scaleToFill" />
</view>
<view class="order-desc tg">账单结算</view>
</view>
- <view class="nav row margin-tb" @click="goto('/pages/farmer/flower-manage/flower-manage',true)">
+ <view class="nav row margin-tb" @click="goto('/sub_pages/farmer/flower-manage/flower-manage',true)">
<view class="img-c">
<image class="icon margin-bottom order-icon spgl"
src="/static/images/farmer/user/user-icon-spgl.png" mode="scaleToFill" />
</view>
<view class="order-desc cqw">商品管理</view>
</view>
- <view class="nav row margin-tb" @click="goto('/pages/farmer/order-sale/order-sale',true)">
+ <view class="nav row margin-tb" @click="goto('/sub_pages/farmer/order-sale/order-sale',true)">
<view class="img-c">
<image class="icon margin-bottom order-icon shlp"
src="/static/images/farmer/user/user-icon-shlp.png" mode="scaleToFill" />
</view>
<view class="order-desc syst">售后理赔</view>
</view>
- <view class="nav row margin-tb" @click="goto('/pages/farmer/order-records/order-records',true)">
+ <view class="nav row margin-tb" @click="goto('/sub_pages/farmer/order-records/order-records',true)">
<view class="img-c">
<image class="icon margin-bottom order-icon kkjl"
src="/static/images/farmer/user/user-icon-kkjl.png" mode="scaleToFill" />
diff --git a/pages/login/farmer-login.vue b/pages/login/farmer-login.vue
index caf2acc..e26f158 100644
--- a/pages/login/farmer-login.vue
+++ b/pages/login/farmer-login.vue
@@ -117,8 +117,8 @@
// uni.switchTab({
// url: '/pages/index/index'
// })
- uni.navigateTo({
- url: '/pages/login/farmer-reg'
+ uni.redirectTo({
+ url: '/sub_pages/farmer/farmer-reg/farmer-reg'
})
},
diff --git a/pages/login/login.scss b/pages/login/login.scss
index fcd6136..d975945 100644
--- a/pages/login/login.scss
+++ b/pages/login/login.scss
@@ -1,6 +1,6 @@
.login-container{
min-height: 99vh;
- background-image: url('../../static/images/farmer/login/bg.png');
+ background-image: url('@/static/images/farmer/login/bg.png');
.nav-title{
font-weight: 400;
font-size: 32rpx;
diff --git a/pages/user/farmer-user.vue b/pages/user/farmer-user.vue
index 0245c43..b08912d 100644
--- a/pages/user/farmer-user.vue
+++ b/pages/user/farmer-user.vue
@@ -24,12 +24,30 @@
</view>
<view class="user-utils m-20">
- <view class="user-util">
+ <view class="user-util m-b-5 flex" @click="goto('/pages/user/user-info/user-info',true)">
+ <view class="title">个人信息</view>
+ <view class="right-icon">
+ <uni-icons type="right"></uni-icons>
+ </view>
+ </view>
+ <view class="user-util m-t-12 flex" @click="goto('/sub_pages/farmer/farmer-info/farmer-info',true)">
+ <view class="title">店铺信息</view>
+ <view class="right-icon">
+ <uni-icons type="right"></uni-icons>
+ </view>
+ </view>
+ <view class="user-util m-t-12 flex" @click="goto('/pages/user/user-pwd/user-pwd',true)">
+ <view class="title">修改密码</view>
+ <view class="right-icon">
+ <uni-icons type="right"></uni-icons>
+ </view>
+ </view>
+ <view class="user-util m-t-12 " @click="callTel">
<view class="title">我的客服</view>
<view class="flex">
<image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image>
<view class="name">
- 客服电话: <span class="topic-gray">1386785374</span>
+ 客服电话: <span class="topic-gray">{{tel}}</span>
</view>
</view>
</view>
@@ -57,7 +75,7 @@
tcode: '',
inviterName: '',
// StatusBar:0,
-
+ tel:'1386785374'
};
},
@@ -78,7 +96,12 @@
url: '/pages/login/farmer-login'
})
},
-
+ async callTel(){
+ await this.$message.confirm('是否拨打客服电话')
+ uni.makePhoneCall({
+ phoneNumber: this.tel //仅为示例
+ });
+ }
}
diff --git a/pages/user/user-info/user-info.vue b/pages/user/user-info/user-info.vue
index a8cd0ef..fc82505 100644
--- a/pages/user/user-info/user-info.vue
+++ b/pages/user/user-info/user-info.vue
@@ -16,12 +16,12 @@
</view>
</view>
<view class="form-item">
- <view class="label">姓名</view>
+ <view class="label">昵称</view>
<view class="m-l-a m-r-0 flex text-right">
<!-- {{dto.nickName || '-'}} -->
- <input v-model="dto.nickName" type="nickname" placeholder="请输入昵称" @blur="bindblur" @input="bindinput"
- style="margin-top: 16px;text-align: right;"></input>
+ <input v-model="dto.nickName" type="nickname" placeholder="请输入昵称" @blur="bindblur"
+ @input="bindinput" style="margin-top: 16px;text-align: right;"></input>
</view>
</view>
@@ -51,49 +51,6 @@
</view>
</view>
- <!-- <view class="form-item">
- <view class="label">用户名</view>
-
- <view class="m-l-a m-r-0 flex">
- <input v-model="dto.birthday" placeholder="请输入用户名" style="margin-top: 16px;text-align: right;"></input>
- </view>
- </view> -->
-
-
- <!-- #ifndef MP -->
- <view class="form-item">
- <view class="label">部门</view>
- <view class="m-l-a m-r-0 flex desc-gray">
- <input v-model="dto.departmentName" disabled style="margin-top: 16px;text-align: right;"></input>
- </view>
- </view>
- <view class="form-item">
- <view class="label">邮箱</view>
- <view class="m-l-a m-r-0 flex desc-gray">
- <input v-model="dto.email" disabled style="margin-top: 16px;text-align: right;"></input>
- </view>
- </view>
-
- <view class="form-item">
- <view class="label">性别</view>
- <view class="m-l-a m-r-0 flex desc-gray">
- <input v-model="dto.genderStr" disabled style="margin-top: 16px;text-align: right;"></input>
- </view>
- </view>
-
- <view class="form-item">
- <view class="label">工号</view>
- <view class="m-l-a m-r-0 flex desc-gray">
- <input v-model="dto.workNo" disabled style="margin-top: 16px;text-align: right;"></input>
- </view>
- </view>
- <view class="form-item">
- <view class="label">岗位</view>
- <view class="m-l-a m-r-0 flex desc-gray">
- <input v-model="dto.positionName" disabled style="margin-top: 16px;text-align: right;"></input>
- </view>
- </view>
- <!-- #endif -->
</view>
<view class="button-green-1 m-t-20 button-fixed-bottom" @click="update">
@@ -118,27 +75,9 @@
},
async mounted() {
// await this.$store.dispatch('getCurrentInfo');
- // #ifdef MP
this.dto = {
...this.currentInfo,
}
- // #endif
- // #ifndef MP
- this.$message.showLoading()
- const {
- data
- } = await this.$http.request('get', '/api/personnel/employee/get/' + this.currentInfo.id)
- console.log('data', data)
- this.$message.hideLoading()
-
- this.dto = {
- // address:this.currentInfo.customerInfo.address||'',
- // email:this.currentInfo.customerInfo.email||'',
- ...this.currentInfo,
- ...data
- }
- // #endif
-
},
methods: {
bindblur(e) {
@@ -155,12 +94,13 @@
}
// "/api/current/user/update"
this.$message.showLoading()
- if(this.dto.picture&&this.dto.picture.indexOf('http://tmp/')>=0){
+ if (this.dto.picture && this.dto.picture.indexOf('http://tmp/') >= 0) {
//上传
const res = await this.$http.upload(this.dto.picture)
var picture = res.data && res.data.length > 0 && res.data[0].url || ''
this.dto.picture = picture
}
+
// #ifdef MP
const {
code
@@ -191,12 +131,14 @@
// // #endif
this.$message.hideLoading()
+ // #ifdef MP
if (code == 0) {
this.$message.showToast('更新成功')
// this.$store.commit('updateInfo',this.dto)
// }
await this.$store.dispatch('getCurrentInfo');
}
+ // #endif
},
@@ -365,7 +307,7 @@
border: 1px solid #fff;
// border-radius: 200%;
color: #fff;
-
+
&::after {
border: none;
}
diff --git a/pages/user/user-pwd/user-pwd.vue b/pages/user/user-pwd/user-pwd.vue
new file mode 100644
index 0000000..51ffd75
--- /dev/null
+++ b/pages/user/user-pwd/user-pwd.vue
@@ -0,0 +1,234 @@
+<template>
+ <view class="wrap bg-app-white hidebar" style="min-height: calc(100vh - 150rpx);">
+ <u-form :model="model" :rules="rules" ref="uForm">
+ <!-- <u-form-item :label-position="labelPosition" label="原始密码" label-width="150" prop="oldpassword">
+ <u-input :border="border" type="password" v-model="model.oldpassword" placeholder="请确认密码"></u-input>
+ </u-form-item> -->
+<!-- <u-form-item :label-position="labelPosition" label="旧密码" prop="oldpassword" label-width="150">
+ <u-input :password-icon="true" :border="border" type="password" v-model="model.oldpassword"
+ placeholder="请输入旧密码"></u-input>
+ </u-form-item>
+ <u-divider></u-divider> -->
+ <u-form-item :label-position="labelPosition" label="新密码" prop="password" label-width="150">
+ <u-input :password-icon="true" :border="border" type="password" v-model="model.password"
+ placeholder="请输入新密码"></u-input>
+ </u-form-item>
+ <u-divider></u-divider>
+ <u-form-item :label-position="labelPosition" label="确认密码" label-width="150" prop="rePassword">
+ <u-input :border="border" type="password" v-model="model.rePassword" placeholder="请确认密码"></u-input>
+ </u-form-item>
+ </u-form>
+ <!-- <u-button @click="submit">提交</u-button> -->
+ <view class="button-green-1 m-t-20 button-fixed-bottom" @click="submit">
+ 保存
+ </view>
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ let that = this;
+ return {
+ labelPosition: 'left',
+ model: {
+ oldpassword: '',
+ password: '',
+ rePassword: ''
+ },
+
+ rules: {
+ // oldpassword: [
+ // {
+ // required: true,
+ // message: '请输入密码',
+ // trigger: ['change', 'blur']
+ // },
+ // // {
+ // // // 正则不能含有两边的引号
+ // // pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+\S{5,12}$/,
+ // // message: '需同时含有字母和数字,长度在6-12之间',
+ // // trigger: ['change', 'blur']
+ // // }
+ // ],
+ oldpassword: [{
+ required: true,
+ message: '请输入旧密码',
+ trigger: ['change', 'blur']
+ }
+ ],
+ password: [{
+ required: true,
+ message: '请输入密码',
+ trigger: ['change', 'blur']
+ }
+ ],
+ rePassword: [{
+ required: true,
+ message: '请重新输入密码',
+ trigger: ['change', 'blur']
+ },
+ {
+ validator: (rule, value, callback) => {
+ return value === this.model.password;
+ },
+ message: '两次输入的密码不相等',
+ trigger: ['change', 'blur']
+ }
+ ]
+ },
+ border: false,
+ check: false,
+ selectStatus: 'close',
+
+ errorType: ['message']
+ };
+ },
+ onLoad() {},
+ computed: {
+ borderCurrent() {
+ return this.border ? 0 : 1;
+ }
+ },
+ onReady() {
+ this.$refs.uForm.setRules(this.rules);
+ },
+ methods: {
+ back() {
+ uni.navigateBack({
+ animationDuration: 500,
+ })
+ },
+ submit() {
+ if (!this.model.password) {
+ this.$message.showToast('密码未填写');
+
+ return
+ }
+ if (this.model.rePassword === this.model.password) {
+ this.updatePwd();
+ } else {
+ this.$message.showToast('两次密码不一样');
+
+ return
+ }
+ // this.$refs.uForm.validate(valid => {
+ // if (valid) {
+ // // if(!this.model.agreement) return this.$u.toast('请勾选协议');
+ // // console.log('验证通过');
+ // this.updatePwd();
+ // } else {
+ // // console.log('验证失败');
+ // }
+ // });
+ },
+ async updatePwd() {
+ const resp = await this.$http.request('post', '/api/current/user/password/change', {
+ data: {
+ // password: this.model.oldpassword,
+ // newpassword: this.model.password
+ oldPassword: this.model.oldPassword,
+ password: this.model.password
+ }
+ });
+ if (resp && resp.code == 0) {
+ this.model.password = ''
+ this.model.rePassword = ''
+ this.model.oldPassword = ''
+ this.$message.showToast('修改成功');
+ }
+ },
+ // 点击actionSheet回调
+ actionSheetCallback(index) {
+ uni.hideKeyboard();
+ this.model.sex = this.actionSheetList[index].text;
+ },
+ // checkbox选择发生变化
+ checkboxGroupChange(e) {
+ this.model.likeFruit = e;
+ },
+ // radio选择发生变化
+ radioGroupChange(e) {
+ this.model.payType = e;
+ },
+ // 勾选版权协议
+ checkboxChange(e) {
+ this.model.agreement = e.value;
+ },
+ // 选择地区回调
+ regionConfirm(e) {
+ this.model.region = e.province.label + '-' + e.city.label + '-' + e.area.label;
+ },
+ // 选择商品类型回调
+ selectConfirm(e) {
+ this.model.goodsType = '';
+ e.map((val, index) => {
+ this.model.goodsType += this.model.goodsType == '' ? val.label : '-' + val.label;
+ });
+ },
+ borderChange(index) {
+ this.border = !index;
+ },
+ radioCheckboxChange(index) {
+ if (index == 0) {
+ this.radioCheckWrap = false;
+ this.radioCheckWidth = 'auto';
+ } else if (index == 1) {
+ this.radioCheckWrap = true;
+ this.radioCheckWidth = 'auto';
+ } else if (index == 2) {
+ this.radioCheckWrap = false;
+ this.radioCheckWidth = '50%';
+ }
+ },
+ labelPositionChange(index) {
+ this.labelPosition = index == 0 ? 'left' : 'top';
+ },
+ codeChange(text) {
+ this.codeTips = text;
+ },
+ // 获取验证码
+ getCode() {
+ if (this.$refs.uCode.canGetCode) {
+ // 模拟向后端请求验证码
+ uni.showLoading({
+ title: '正在获取验证码',
+ mask: true
+ });
+ setTimeout(() => {
+ uni.hideLoading();
+ // 这里此提示会被this.start()方法中的提示覆盖
+ this.$u.toast('验证码已发送');
+ // 通知验证码组件内部开始倒计时
+ this.$refs.uCode.start();
+ }, 2000);
+ } else {
+ this.$u.toast('倒计时结束后再发送');
+ }
+ },
+ errorChange(index) {
+ if (index == 0) this.errorType = ['message'];
+ if (index == 1) this.errorType = ['toast'];
+ if (index == 2) this.errorType = ['border-bottom'];
+ if (index == 3) this.errorType = ['border'];
+ }
+ }
+ };
+</script>
+
+<style scoped lang="scss">
+ .wrap {
+ padding: 30rpx;
+ }
+
+ .agreement {
+ display: flex;
+ align-items: center;
+ margin: 40rpx 0;
+
+ .agreement-text {
+ padding-left: 8rpx;
+ color: $u-tips-color;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/pages/login/farmer-reg.vue b/sub_pages/farmer/farmer-info/farmer-info.vue
similarity index 73%
rename from pages/login/farmer-reg.vue
rename to sub_pages/farmer/farmer-info/farmer-info.vue
index dec8b1f..0f54ae3 100644
--- a/pages/login/farmer-reg.vue
+++ b/sub_pages/farmer/farmer-info/farmer-info.vue
@@ -21,15 +21,26 @@
</view>
</view>
- <view class="form-item before-line">
+ <view class="form-item bottom-border-no">
<view class="label required" style="width: 360rpx;">店铺头像(750*750px)</view>
<view class="m-l-a m-r-0 flex m-t-20 m-b-20">
- <view class="component-button-upload" @click="uploadIcon('icon')"
- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
+ <view class="component-button-upload" @click="uploadIcon('cover')" >
</view>
</view>
</view>
+ <view v-if="dto.cover">
+ <view class="flex p20 form-item bottom-border-no" style="padding-top: 0rpx;padding-bottom: 10rpx" >
+ <view class="m-r-10 ">
+ <image class="banner-img" :src="dto.cover" @click.stop="previewImg(dto.cover)">
+
+ </image>
+ <view class="t-red text-center" @click.stop="deleteImg('cover','')">删除</view>
+ </view>
+ </view>
+ </view>
+ <u-divider></u-divider>
+
<view class="form-item before-line">
<view class="label required">姓名</view>
<view class="m-l-a m-r-0 flex">
@@ -87,10 +98,10 @@
<view class="form-item before-line m-t-20">
<view class="label required">选择审核方式</view>
<view class="m-l-a m-r-0 flex">
-
+
<u-radio-group v-model="dto.idcardType" placement="row">
- <u-radio :customStyle="{'margin-bottom': '8px','margin-right': '8px','font-size':'28rpx'}" v-for="(item, index) in shTypeList" :key="index"
- :label="item.name" :name="item.name">
+ <u-radio :customStyle="{'margin-bottom': '8px','margin-right': '8px','font-size':'28rpx'}"
+ v-for="(item, index) in shTypeList" :key="index" :label="item.name" :name="item.name">
</u-radio>
</u-radio-group>
</view>
@@ -98,27 +109,41 @@
<view class="form-item before-line m-t-20 p-b-20" v-if="dto.idcardType=='身份证'">
<view class="label required">身份证正反面</view>
<view class="m-l-a m-r-0 flex">
- <view class="component-button-upload m-r-15" @click="uploadIcon('icon')"
- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
+ <view class="component-button-upload m-r-15" @click="uploadIcon('idCards')">
</view>
- <view class="component-button-upload" @click="uploadIcon('icon')"
- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
+ <view class="component-button-upload" @click="uploadIcon('idCards')">
</view>
+ </view>
+ </view>
+ <view class="flex p20" style="padding-top: 0rpx;padding-bottom: 10rpx"
+ v-if="dto.idCards&&dto.idCards.length>0">
+ <view class="m-t-12 m-r-10 " v-for="(tBanner,index) of dto.idCards" :key="index">
+ <image class="banner-img" :src="tBanner.url" @click.stop="previewImg(tBanner.url)">
+
+ </image>
+ <view class="t-red text-center" @click.stop="deleteImg('idCards',index)">删除</view>
</view>
</view>
<view class="form-item before-line m-t-20 p-b-20" v-if="dto.idcardType=='营业执照'">
<view class="label required">营业执照</view>
<view class="m-l-a m-r-0 flex">
- <view class="component-button-upload m-r-15" @click="uploadIcon('icon')"
- :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
+ <view class="component-button-upload m-r-15" @click="uploadIcon('pictures')">
</view>
</view>
</view>
+ <view class="flex p20" style="padding-top: 0rpx;padding-bottom: 10rpx"
+ v-if="dto.pictures&&dto.pictures.length>0">
+ <view class="m-t-12 m-r-10 " v-for="(tBanner,index) of dto.pictures" :key="index">
+ <image class="banner-img" :src="tBanner.url" @click.stop="previewImg(tBanner.url)">
+ </image>
+ <view class="t-red text-center" @click.stop="deleteImg('pictures',index)">删除</view>
+ </view>
+ </view>
@@ -128,7 +153,9 @@
</view>
-
+ <view style="min-height: 200rpx;">
+
+ </view>
<u-picker @confirm="select_type" keyName="label" @cancel="show_select_type=false" :show="show_select_type"
:columns="columns_types"></u-picker>
@@ -158,7 +185,9 @@
api: '',
dto: {
id: '',
- applicationType: '',
+ pictures: [],
+ idCards: [],
+ cover:''
},
show_select_type: false,
show_select_user: false,
@@ -187,31 +216,6 @@
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/code/value', {
params: {
@@ -249,16 +253,18 @@
const {
code,
data
- } = await this.$http.request('get', "/api/app/application/get/" + this.id, {})
+ } = await this.$http.request('get', "/api/supplier/addOrUpdate/detail/" + this.id, {})
if (code == 0) {
this.dto = {
...data,
}
- if (this.dto.applicationDate) {
- this.dto.applicationDate = this.$util.toDate(new Date(this.dto.applicationDate))
+ if (!this.dto.pictures) {
+ this.dto.pictures = []
}
- // console.log('this.dto', this.dto)
+ if (!this.dto.idCards) {
+ this.dto.idCards = []
+ }
}
@@ -266,29 +272,15 @@
},
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):""}`)
- // this.$message.showToast('1')
- // return
+ await this.$message.confirm(`是否确定提交/修改店铺信息`)
+
+
var dto = {
...this.dto,
- 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/addOrUpdate', {
data: dto
})
this.$message.hideLoading()
@@ -300,28 +292,14 @@
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()
+ async deleteImg(key, index) {
+ await this.$message.confirm('是否确认删除此图片')
+ if(Array.isArray(this.dto[key])){
+ this.dto[key].splice(index, 1)
+
+ }else{
+ this.dto[key] = ''
}
},
uploadIcon(key) {
@@ -339,10 +317,15 @@
that.$message.showLoading()
that.$http.upload(tempFiles[0].path).then(async res => {
var pic = res.data && res.data.length > 0 && res.data[
- 0]
- .url || ''
+ 0] || {}
that.$message.hideLoading()
- that.dto[key] = pic || ''
+ if(Array.isArray(that.dto[key])){
+ that.dto[key].push(pic || '')
+
+ }else{
+ that.dto[key] = (pic || {}).url || ''
+
+ }
that.$forceUpdate()
}).catch(res => {
that.$message.hideLoading()
@@ -357,12 +340,18 @@
computed: {
...mapState(['currentInfo'])
},
- components: {
- }
+ components: {}
}
</script>
<style lang="scss" scoped>
+ .banner-img {
+ width: 96rpx;
+ height: 96rpx;
+ border-radius: 4rpx;
+ border: 2rpx dashed #CECECE;
+ }
+
.form-item {
// padding: 40rpx;
border-bottom: 2rpx solid #F3F3F3;
diff --git a/sub_pages/farmer/farmer-reg/farmer-reg.vue b/sub_pages/farmer/farmer-reg/farmer-reg.vue
new file mode 100644
index 0000000..7313558
--- /dev/null
+++ b/sub_pages/farmer/farmer-reg/farmer-reg.vue
@@ -0,0 +1,358 @@
+<template>
+ <view class="main-container login-container img100" style="margin-top: 0rpx;">
+
+ <view class="t-login top-bg">
+ <view class="nav-title">注册</view>
+ <view class="login">
+ <form class="cl">
+ <view class="t-a titles-top">
+ <view class="title-1">HELLO</view>
+ <view class="title-2">欢迎注册<span class="title-3">花满芜</span></view>
+ </view>
+
+
+ <view class="t-a input" v-if="loginType=='code'">
+ <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
+ {{getCodeText}}
+ </view>
+
+ <input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber" />
+
+ </view>
+
+
+ <view class="t-a input" v-if="loginType=='code'">
+ <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode" />
+ </view>
+ <view class="t-a input" v-if="loginType=='code'">
+ <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" />
+ </view>
+ <button @tap="login()" class="bottom-button">注 册</button>
+
+ <view class="flex">
+ <view class="topic-font m-l-a m-r-0" @click="toLogin">前往登录</view>
+ </view>
+ </form>
+ </view>
+ </view>
+ </view>
+</template>
+<script>
+ // import util from '@/utils/util.js'
+ // import gzmzApi from '@/api/gzmzApi.js'
+ // import myCache from '@/utils/myCache.js'
+ export default {
+ data() {
+ return {
+ openId: '-1',
+
+ userName: '',
+ password: '',
+
+ phoneNumber: '',
+ smsCode: '',
+
+ checked: false,
+ loginType: 'code', //pwd和code,密码和验证码登录
+ pcfvalue: undefined,
+ getCodeText: '获取验证码',
+ getCodeBtnColor: "#20613D",
+ getCodeisWaiting: false,
+ Timer: undefined
+ };
+ },
+ methods: {
+ getCode() {
+ uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
+ if (this.getCodeisWaiting) {
+ return;
+ }
+ if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误
+ uni.showToast({
+ title: '请填写正确手机号码',
+ icon: "none"
+ });
+ return false;
+ }
+ this.getCodeText = "发送中..." //发送验证码
+ this.getCodeisWaiting = true;
+ this.getCodeBtnColor = "rgba(255,255,255,0.5)" //追加样式,修改颜色
+ //示例用定时器模拟请求效果
+ //setTimeout(()用于在指定的毫秒数后调用函数或计算表达式
+ setTimeout(() => {
+ uni.showToast({
+ title: '验证码已发送',
+ icon: "none"
+ }); //弹出提示框
+ //示例默认1234,生产中请删除这一句。
+ // this.code = '1234'; //发送验证码,进行填入
+ this.setTimer(); //调用定时器方法
+ }, 1000)
+ },
+ //setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数
+ setTimer() {
+ let holdTime = 60; //定义变量并赋值
+ this.getCodeText = "重新获取(60)"
+ //setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。
+ //setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。
+ this.Timer = setInterval(() => {
+ if (holdTime <= 0) {
+ this.getCodeisWaiting = false;
+ this.getCodeBtnColor = "#20613D";
+ this.getCodeText = "获取验证码"
+ clearInterval(this.Timer); //清除该函数
+ return; //返回前面
+ }
+ this.getCodeText = "重新获取(" + holdTime + ")"
+ holdTime--;
+ }, 1000)
+ },
+ toLogin() {
+ uni.redirectTo({
+ url: '/pages/login/farmer-login'
+ })
+
+ },
+ changeAll(e) {
+ this.pcfvalue = e.detail.value[0]
+ },
+ async login() {
+ uni.showLoading({
+ title: '登陆中'
+ });
+ var that = this;
+ if (!that.userName) {
+ uni.showToast({
+ title: '请输入用户名',
+ icon: 'none'
+ });
+ return;
+ }
+ if (!that.password) {
+ uni.showToast({
+ title: '请输入密码',
+ icon: 'none'
+ });
+ return;
+ }
+ // if (this.pcfvalue == undefined) {
+ // util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
+ // return;
+ // }
+ let post = {
+ username: this.userName,
+ password: this.password,
+ // openId: '123456789'
+ }
+ // const {
+ // code
+ // } = await this.$http.request('get', '/api/login/admin')
+ const resp = await this.$store.dispatch('loginSupplier', post);
+ // uni.hideLoading()
+
+ if (resp.code == 0) {
+
+ // myCache.cache("userToken", res.data.accessToken)
+ // let userRes = await gzmzApi.getMemberInfo();
+ // if (userRes.status) {
+ // myCache.cache("userInfo", JSON.stringify(userRes.data))
+ // }
+ // setTimeout(() => {
+ // uni.navigateBack();
+ // }, 1000);
+
+ } else {
+ uni.showToast({
+ title: '登录失败!',
+ icon: 'none'
+ });
+ return;
+ }
+
+ },
+ tc1(id) {
+ uni.navigateTo({
+ url: '/pages/users/xieyi?id=' + id,
+ });
+ }
+ }
+ };
+</script>
+
+<style lang="scss" scoped>
+ @import '@/pages/login/login.scss';
+
+ .main-container {
+ margin: 20px 0;
+ }
+
+ .img-a {
+ position: absolute;
+ width: 100%;
+ top: -150rpx;
+ right: 0;
+ }
+
+ .img-b {
+ position: absolute;
+ width: 50%;
+ bottom: 0;
+ left: -120rpx;
+ }
+
+ .to-home {
+ margin-top: 30rpx;
+ font-size: 30rpx;
+ color: #5af;
+ display: flex;
+ flex-direction: row-reverse;
+ }
+
+ .t-login {
+ width: 100%;
+ margin: 0 auto;
+ font-size: 28rpx;
+ color: #000;
+ }
+
+ .t-login .bg {
+ width: 100%;
+ position: relative;
+ }
+
+ .t-login .login {
+ width: 650rpx;
+ margin: 60rpx auto;
+ margin-top: 0rpx;
+ font-size: 28rpx;
+ color: #000;
+ }
+
+ .t-login button {
+ font-size: 28rpx;
+ background: #5677fc;
+ color: #fff;
+ height: 90rpx;
+ line-height: 90rpx;
+ border-radius: 50rpx;
+ box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
+ }
+
+ .t-login input {
+ padding: 0 20rpx 0 120rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+ margin-bottom: 50rpx;
+ background: #f8f7fc;
+ border: 1px solid #e9e9e9;
+ font-size: 28rpx;
+ border-radius: 50rpx;
+ }
+
+ .t-login .t-a {
+ position: relative;
+
+ .get-code {
+ position: absolute;
+ right: 40rpx;
+ top: 20rpx;
+ }
+ }
+
+ .t-login .t-a .icon {
+ width: 40rpx;
+ height: 40rpx;
+ position: absolute;
+ left: 24rpx;
+ top: 14rpx;
+ margin-right: 20rpx;
+ }
+
+ .t-login .t-a .line {
+ width: 2rpx;
+ height: 40rpx;
+ background-color: #dedede;
+ position: absolute;
+ top: 28rpx;
+ left: 98rpx;
+ }
+
+ .t-login .t-b {
+ text-align: left;
+ font-size: 46rpx;
+ color: #000;
+ padding: 300rpx 0 30rpx 0;
+ font-weight: bold;
+ }
+
+ .t-login .t-b2 {
+ text-align: left;
+ font-size: 32rpx;
+ color: #aaaaaa;
+ padding: 0rpx 0 120rpx 0;
+ }
+
+ .t-login .t-c {
+ position: absolute;
+ right: 22rpx;
+ top: 22rpx;
+ background: #5677fc;
+ color: #fff;
+ font-size: 24rpx;
+ border-radius: 50rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding: 0 25rpx;
+ z-index: 999;
+ }
+
+ .t-login .t-d {
+ text-align: center;
+ color: #999;
+ margin: 80rpx 0;
+ }
+
+ .t-login .t-e {
+ text-align: center;
+ width: 250rpx;
+ margin: 80rpx auto 0;
+ }
+
+ .t-login .t-g {
+ float: left;
+ width: 50%;
+ }
+
+ .t-login .t-e image {
+ width: 50rpx;
+ height: 50rpx;
+ }
+
+ .t-login .t-f {
+ text-align: center;
+ margin: 200rpx 0 0 0;
+ color: #666;
+ }
+
+ .t-login .t-f text {
+ margin-left: 20rpx;
+ color: #aaaaaa;
+ font-size: 27rpx;
+ }
+
+ .t-login .uni-input-placeholder {
+ color: #000;
+ }
+
+ .cl {
+ zoom: 1;
+ }
+
+ .cl:after {
+ clear: both;
+ display: block;
+ visibility: hidden;
+ height: 0;
+ content: '\20';
+ }
+</style>
\ No newline at end of file
diff --git a/pages/farmer/flower-manage/flower-add.vue b/sub_pages/farmer/flower-manage/flower-add.vue
similarity index 100%
rename from pages/farmer/flower-manage/flower-add.vue
rename to sub_pages/farmer/flower-manage/flower-add.vue
diff --git a/pages/farmer/flower-manage/flower-manage.vue b/sub_pages/farmer/flower-manage/flower-manage.vue
similarity index 79%
rename from pages/farmer/flower-manage/flower-manage.vue
rename to sub_pages/farmer/flower-manage/flower-manage.vue
index 679735d..9734e0a 100644
--- a/pages/farmer/flower-manage/flower-manage.vue
+++ b/sub_pages/farmer/flower-manage/flower-manage.vue
@@ -61,8 +61,10 @@
<view class="buttons">
<view class="button" @click.stop="toDetail(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="buttonStatus(item,'FORCE_OFF')"
+ v-if="item.status=='FORCE_UP'">下架</view>
+ <view class="button" @click.stop="buttonStatus(item,'FORCE_UP')"
+ v-if="item.status=='FORCE_OFF'">上架</view>
<view class="button" @click.stop="openValue(item,'price')">价格</view>
<view class="button" @click.stop="openValue(item,'stock')">库存</view>
<view class="button" @click.stop="toDetailAdd(item)">复制</view>
@@ -77,16 +79,35 @@
<!-- 判断是否到底了,自动吧 -->
<footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
- <uni-popup ref="popup_input" type="bottom">
- <view class="component-popup_input">
+ <uni-popup ref="popup_input" type="bottom" :mask-click="false">
+ <view class="component-popup_input white w-fit" style="padding-bottom: 0rpx;padding: 0px;">
+ <view class="p20" style="padding-bottom: 10rpx;">
+ <view class="title" v-if="currentInputKey=='price'">
+ 修改价格
+ </view>
+ <view class="title" v-if="currentInputKey=='stock'">
+ 修改库存
+ </view>
- <!-- 输入框-->
+ <!-- 输入框-->
+ <view class="flex w-fit">
- <u-input class="bg-white" v-model="content" :placeholder="inputplaceholder" type="digit" v-if="currentInputKey=='price'"/>
- <u-input class="bg-white" v-model="content" :placeholder="inputplaceholder" type="number" v-if="currentInputKey=='stock'"/>
+ <u-input v-model="content" :placeholder="inputplaceholder" type="digit"
+ style="max-width: 390rpx;background-color: #F2F2F2;" v-if="currentInputKey=='price'" />
+ <view v-if="currentInputKey=='price'" class="m-l-10" style="line-height: 78rpx;">元</view>
+ <u-input v-model="content" :placeholder="inputplaceholder" type="number"
+ style="max-width: 390rpx;background-color: #F2F2F2;" v-if="currentInputKey=='stock'" />
+ </view>
+ </view>
<!-- 提交按钮 -->
- <view class="button-green" @click="submitValue">提交</view>
+ <view class="line-gray" style="margin-bottom: 0px;"></view>
+ <view class="flex">
+ <u-button type="default" class="w-fit flex1 " text="取消"
+ @click="()=>{$refs.popup_input.close()}"></u-button>
+ <view class="component-line-vert"></view>
+ <u-button type="default" class="w-fit flex1 topic-font" t text="确定" @click="submitValue"></u-button>
+ </view>
</view>
</uni-popup>
</view>
@@ -103,27 +124,37 @@
content: '',
currentInputDto: {},
currentInputKey: '',
- inputplaceholder:'',
+ inputplaceholder: '',
}
},
onLoad(options) {
this.type = options.type || 'all'
+ var title = ''
//todo 根据type切换查询条件
if (this.type === 'delete') {
this.listApi = '/api/supplier/flower/list/rc'
-
+ title = '商品管理-已删除'
} else {
+
this.listApi = '/api/supplier/flower/list'
this.query.status = ''
if (this.type === 'inpass') {
this.query.status = 'PENDING'
+ title = '商品管理-待审核'
}
if (this.type === 'in') {
this.query.status = 'UP'
+ title = '商品管理-已上架'
}
if (this.type === 'unpass') {
this.query.status = 'REJECT'
+ title = '商品管理-审核拒绝'
}
+ }
+ if (title) {
+ uni.setNavigationBarTitle({
+ title: title
+ })
}
this.getList()
},
@@ -141,7 +172,7 @@
this.content = item[key] || ''
this.currentInputDto = item
this.currentInputKey = key
- this.inputplaceholder = key=='price'&&'请输入价格(元)' || key=='stock'&&'请输入库存(整数)' || '请输入'
+ this.inputplaceholder = key == 'price' && '请输入价格(元)' || key == 'stock' && '请输入库存(整数)' || '请输入'
this.$refs.popup_input.open('top')
},
async submitValue() {
@@ -186,7 +217,7 @@
})
},
async buttonStatus(item, status) {
- await this.$message.confirm(`确定${status==='off'?'下降':'上架'}此商品吗`)
+ await this.$message.confirm(`确定${status==='FORCE_OFF'?'下降':'上架'}此商品吗`)
this.$message.showLoading()
this.$http.request('get', '/api/supplier/flower/list/' + status, {
params: {
@@ -196,7 +227,7 @@
if (res.code == 0) {
this.$message.showToast('操作成功')
item.status = status
- item.statusStr = (status == 'off' ? '下架' : '上架')
+ item.statusStr = (status == 'FORCE_OFF' ? '下架' : '上架')
}
}).finally(() => {
this.$message.hideLoading()
@@ -335,16 +366,18 @@
// min-width: 90rpx;
flex: 4;
// max-width: 90rpx;
- margin-left:14rpx;
- margin-right:14rpx;
+ margin-left: 14rpx;
+ margin-right: 14rpx;
}
.button:first-child {
margin-left: 0rpx
}
+
.button:last-child {
margin-right: 0rpx
}
+
.button-add {
background-image: url('@/static/images/farmer/flower/flower-mange-icon-add-flower.png');
diff --git a/pages/farmer/order-records/order-records.vue b/sub_pages/farmer/order-records/order-records.vue
similarity index 100%
rename from pages/farmer/order-records/order-records.vue
rename to sub_pages/farmer/order-records/order-records.vue
diff --git a/pages/farmer/order-sale/order-sale.vue b/sub_pages/farmer/order-sale/order-sale.vue
similarity index 100%
rename from pages/farmer/order-sale/order-sale.vue
rename to sub_pages/farmer/order-sale/order-sale.vue
diff --git a/pages/farmer/order-settlement/order-settlement.vue b/sub_pages/farmer/order-settlement/order-settlement.vue
similarity index 100%
rename from pages/farmer/order-settlement/order-settlement.vue
rename to sub_pages/farmer/order-settlement/order-settlement.vue
--
Gitblit v1.9.3