From 2e05e553f0caadf3d4ed9def5c922709f6ff942e Mon Sep 17 00:00:00 2001 From: xuxy <1059738716@qq.com> Date: 星期一, 24 六月 2024 17:45:24 +0800 Subject: [PATCH] 1 --- static/images/farmer/flower/flower-mange-icon-flower-inpass.png | 0 common/self.scss | 3 static/images/farmer/flower/flower-mange-icon-flower-unpass.png | 0 pages.json | 8 pages/farmer/flower-manage/flower-add.vue | 436 +++++++++++++++++++++++++++++++++++++++ pages/farmer/flower-manage/flower-manage.vue | 200 +++++++++++++++++ static/images/farmer/flower/flower-mange-icon-flower-delete.png | 0 static/images/farmer/flower/flower-mange-icon-add-flower.png | 0 static/images/farmer/flower/flower-mange-icon-flower-in.png | 0 9 files changed, 641 insertions(+), 6 deletions(-) diff --git a/common/self.scss b/common/self.scss index 2f1ba42..d99fa0b 100644 --- a/common/self.scss +++ b/common/self.scss @@ -945,3 +945,6 @@ .before-line::before{ border-top: 2rpx solid #EEEEEE; } +.img100{ + background-size: 100% 100%; +} \ No newline at end of file diff --git a/pages.json b/pages.json index a99cd4e..da97997 100644 --- a/pages.json +++ b/pages.json @@ -80,6 +80,14 @@ "navigationBarBackgroundColor": "#E6F2EB" } + }, + { + "path" : "pages/farmer/flower-manage/flower-add", + "style" : + { + "navigationBarTitleText" : "", + "enablePullDownRefresh" : false + } } ], "globalStyle": { diff --git a/pages/farmer/flower-manage/flower-add.vue b/pages/farmer/flower-manage/flower-add.vue new file mode 100644 index 0000000..bf2fb5f --- /dev/null +++ b/pages/farmer/flower-manage/flower-add.vue @@ -0,0 +1,436 @@ +<template> + <view class="container-page"> + <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="()=>{ + if(!id){ + show_select_type=true + } + }"> + <view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view> + <u-icon class="m-l-a" name="arrow-right"></u-icon> + </view> + + </view> + <view class="form-item before-line"> + <view class="label required">商品单位</view> + <view class="m-l-a m-r-0 flex"> + <input v-model="dto.applicationTitle" placeholder="请输入店铺名称" + style="margin-top: 16px;text-align: right;"></input> + + </view> + </view> + <view class="form-item before-line"> + <view class="label required">商品颜色</view> + <view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{ + if(!id){ + show_select_type=true + } + }"> + <view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view> + <u-icon class="m-l-a" name="arrow-right"></u-icon> + </view> + + </view> + <view class="line-gray-big"></view> + + <view class="form-item"> + <view class="label required">列表封面图(130*120px)</view> + <view class="m-l-a m-r-0 flex"> + <view class="component-button-upload" @click="uploadIcon('icon')" + :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}"> + + </view> + </view> + </view> + <view class="form-item before-line"> + <view class="label required">商品轮播图(300*160px)</view> + <view class="m-l-a m-r-0 flex"> + <view class="component-button-upload" @click="uploadIcon('icon')" + :style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}"> + + </view> + </view> + </view> + <view class="line-gray-big"></view> + + + <view class="form-item before-line"> + <view class="label required">售价</view> + <view class="m-l-a m-r-0 flex"> + <input v-model="dto.applicationTitle" placeholder="请输入数字" type="digit" + style="margin-top: 16px;text-align: right;"></input> + </view> + </view> + <view class="form-item before-line"> + <view class="label required">库存</view> + <view class="m-l-a m-r-0 flex"> + <input v-model="dto.applicationTitle" placeholder="请输入数字" type="number" + style="margin-top: 16px;text-align: right;"></input> + </view> + </view> + + <view class="line-gray-big"></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="()=>{ + if(!id){ + show_select_type=true + } + }"> + <view>{{dto.applicationTypeStr||dto.applicationType || '去设置'}}</view> + <u-icon class="m-l-a" name="arrow-right"></u-icon> + </view> + + </view> + <view class="line-gray-big"></view> + <view class="form-item before-line"> + <view class="label required">商品等级</view> + <view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{ + if(!id){ + show_select_type=true + } + }"> + <view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view> + <u-icon class="m-l-a" name="arrow-right"></u-icon> + </view> + + </view> + + + <view class="form-item before-line"> + <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> + + </view> + </view> + + + + + <view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit"> + 提交审核 + </view> + + </view> + + + <u-picker @confirm="select_type" keyName="label" @cancel="show_select_type=false" :show="show_select_type" + :columns="columns_types"></u-picker> + + <u-picker @confirm="select_user" keyName="label" @cancel="show_select_user=false" :show="show_select_user" + :columns="userListCols"></u-picker> + + + </view> +</template> + +<script> + import environments from '@/environments' + import xflSelect from '@/components/xfl-select/xfl-select.vue'; //导入 + + import { + mapState + } from 'vuex' + + export default { + + data() { + return { + id: '', + orderId: '', + show_addlog: false, + log_remarks: '', + refresh: false, + api: '', + dto: { + id: '', + applicationType: '', + }, + show_select_type: false, + show_select_user: false, + columns_types: [], + audit_remarks: '', + audit_result: false, + show_audit: false, + + + //审核方式 + shTypeList: [{ + name: '身份证', + disabled: false + }, + { + name: '营业执照', + disabled: false + } + ], + radiovalue1: '身份证', + + } + }, + 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', { + params: { + typeCode: 'APPLICATION_TYPE' + } + }).then(res => { + var data = res.data + this.columns_types = [data || []] + this.columns_types[0].unshift({ + label: '全部', + value: '' + }) + + }) + } + + }, + + methods: { + + + select_type(e) { + this.show_select_type = false + this.dto.applicationTypeStr = e.value[0].label + this.dto.applicationType = e.value[0].value + }, + select_user(e) { + this.show_select_user = false + this.dto.auditPersonStr = e.value[0].label + this.dto.auditPersonId = e.value[0].value + }, + + async getDetail() { + this.$message.showLoading() + const { + code, + data + } = await this.$http.request('get', "/api/app/application/get/" + 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) + + } + + this.$message.hideLoading() + + }, + 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 + 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', { + data: dto + }) + this.$message.hideLoading() + if (re.code == 2000 || re.code == 0) { + this.$message.showToast('操作成功') + //需要标记加一下 + 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({ + count: 1, // 最多可以选择的图片张数,默认9 + sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有 + sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项 + success: function({ + errMsg, + tempFiles + }) { + if (errMsg === 'chooseImage:ok') { + // console.log(tempFiles[0]) + that.$message.showLoading() + that.$http.upload(tempFiles[0].path).then(async res => { + var pic = res.data && res.data.length > 0 && res.data[ + 0] + .url || '' + that.$message.hideLoading() + that.dto[key] = pic || '' + that.$forceUpdate() + }).catch(res => { + that.$message.hideLoading() + + }) + } + } + }) + }, + + }, + computed: { + ...mapState(['currentInfo']) + }, + components: { + xflSelect + } + } +</script> + +<style lang="scss" scoped> + .form-item { + // padding: 40rpx; + border-bottom: 1px solid #F3F3F3; + display: flex; + // height: 100px; + + .label { + width: 300rpx; + line-height: 60px; + + } + + .flex { + line-height: 60px; + + .flex1 { + flex: 1; + text-align: center; + color: var(--selfblue) + } + + + } + } + + .form-item.bottom-border-no { + border-bottom: none; + } + + .container-page { + padding: 40rpx; + background-color: #FFFFFF; + // min-height: calc(100vh - 80rpx); + min-height: 100vh; + } + + .style { + width: fit-content; + margin: 0 auto; + line-height: 64rpx; + border-radius: 8rpx; + padding-left: 20rpx; + padding-right: 20rpx; + // padding-top: 5rpx; + // padding-bottom: 5rpx; + border: 2rpx solid var(--selfblue); + background-color: var(--selfbluebg); + min-width: 100rpx; + } + + + .style-1 { + border: 1px solid rgb(122, 187, 255); + border: 1px solid #409EFF; + color: #409EFF; + background-color: rgb(240, 247, 255); + } + + .style-2 { + border: 1px solid rgb(255, 184, 78); + border: 1px solid #FE9044; + color: #FE9044; + background-color: rgb(255, 247, 235); + } + + .style-3 { + border: 1px solid #19be6b; + color: #19be6b; + background-color: rgb(231, 244, 238); + } + + .style-4 { + border: 1px solid #F56c6c; + color: #F56c6c; + background-color: rgb(254, 243, 243); + } +</style> \ No newline at end of file diff --git a/pages/farmer/flower-manage/flower-manage.vue b/pages/farmer/flower-manage/flower-manage.vue index 8183fd0..a539a1e 100644 --- a/pages/farmer/flower-manage/flower-manage.vue +++ b/pages/farmer/flower-manage/flower-manage.vue @@ -1,6 +1,72 @@ <template> - <view> - + <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> + + <view class="p15" style="min-height: calc(100vh - 160rpx);"> + <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> + <view v-for="(item,index) in list" :key="index" class="m-b-24 flow-manage-list"> + <view class="flow-manage-list-item"> + <view class="flex"> + <image class="flower-img img100 m-r-6" :src="item.img" @click="previewImg(item.img)"></image> + <view> + <view class="flex"> + <view class="title">{{item.title}}<span class="level">A级别</span></view> + <view class="t-red m-l-a m-r-0"> + ¥20.00/扎 + </view> + </view> + <view class="each-list"> + <view class="each-item"> + <view class="label">分类</view> + <view class="value">卡罗拉</view> + + </view> + <view class="each-item"> + <view class="label">颜色</view> + <view class="value">红色</view> + + </view> + <view class="each-item"> + <view class="label">规格</view> + <view class="value">20支/扎</view> + + </view> + <view class="each-item"> + <view class="label">库存</view> + <view class="value">10</view> + + </view> + <view class="each-item"> + <view class="label">销量</view> + <view class="value">10</view> + </view> + </view> + </view> + </view> + <view class="line-gray"> + + </view> + <view class="buttons"> + <view class="button">复制</view> + <view class="button">删除</view> + <view class="button">下架</view> + <view class="button" @click.stop="toDetail(item)">编辑</view> + <view class="button">价格</view> + <view class="button">库存</view> + </view> + </view> + </view> + </view> + + <!-- 判断是否到底了,自动吧 --> + <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> </view> </template> @@ -8,15 +74,137 @@ export default { data() { return { - + type: 'all', + query: { + type: '' + } } }, + onLoad(options) { + this.type = options.type || 'all' + //todo 根据type切换查询条件 + this.listApi = '/api/ua/announcement/list' + this.getList() + }, + onReachBottom() { + this.page.current += 1 + this.getMore() + }, + async onPullDownRefresh() { + this.page.current = 1 + await this.getList() + uni.stopPullDownRefresh() + }, methods: { - + toDetail(item) { + uni.navigateTo({ + url: '/pages/farmer/flower-manage/flower-add?id=' + item.id + }) + }, + clickButton(type) { + if (type == 'add') { + //添加页面 + uni.navigateTo({ + url: '/pages/farmer/flower-manage/flower-add' + }) + } else { + uni.navigateTo({ + url: '/pages/farmer/flower-manage/flower-manage?type=' + type + }) + } + }, } } </script> -<style> +<style lang="scss" scoped> + .flow-manage { + .flow-manage-list { + margin: 20rpx 30rpx; + padding: 22rpx; -</style> + .flow-manage-item { + margin-bottom: 20rpx; + + .buttons { + display: flex; + + .button { + margin: 0 auto; + width: 98rpx; + height: 48rpx; + border-radius: 24rpx; + border: 2rpx solid #CECECE; + } + } + + .flower-img { + width: 128rpx; + height: 118rpx; + + } + + .each-list { + display: flex; + flex-wrap: wrap; + + .each-item { + min-width: 30%; + max-width: 40%; + text-align: center; + + .label { + font-weight: 400; + font-size: 24rpx; + color: #666666; + } + + .label::after { + content: ": " + } + + .value {} + } + } + } + } + + .top-buttons { + display: flex; + margin: 22rpx 42rpx; + + .button { + // flex:1; + margin: 0 auto; + width: 96rpx; + height: 130rpx; + background-size: 100% 100%; + } + + .button-add { + background-image: url('@/static/images/farmer/flower/flower-mange-icon-add-flower.png'); + + } + + .button-search-in { + background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-in.png'); + + } + + .button-search-unpass { + background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-unpass.png'); + + } + + .button-search-inpass { + background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-inpass.png'); + + } + + .button-search-delete { + background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-delete.png'); + + } + } + } +</style> \ No newline at end of file diff --git a/static/images/farmer/flower/flower-mange-icon-add-flower.png b/static/images/farmer/flower/flower-mange-icon-add-flower.png new file mode 100644 index 0000000..f260381 --- /dev/null +++ b/static/images/farmer/flower/flower-mange-icon-add-flower.png Binary files differ diff --git a/static/images/farmer/flower/flower-mange-icon-flower-delete.png b/static/images/farmer/flower/flower-mange-icon-flower-delete.png new file mode 100644 index 0000000..0b836ce --- /dev/null +++ b/static/images/farmer/flower/flower-mange-icon-flower-delete.png Binary files differ diff --git a/static/images/farmer/flower/flower-mange-icon-flower-in.png b/static/images/farmer/flower/flower-mange-icon-flower-in.png new file mode 100644 index 0000000..07ef84c --- /dev/null +++ b/static/images/farmer/flower/flower-mange-icon-flower-in.png Binary files differ diff --git a/static/images/farmer/flower/flower-mange-icon-flower-inpass.png b/static/images/farmer/flower/flower-mange-icon-flower-inpass.png new file mode 100644 index 0000000..e0e3b17 --- /dev/null +++ b/static/images/farmer/flower/flower-mange-icon-flower-inpass.png Binary files differ diff --git a/static/images/farmer/flower/flower-mange-icon-flower-unpass.png b/static/images/farmer/flower/flower-mange-icon-flower-unpass.png new file mode 100644 index 0000000..18e1ed9 --- /dev/null +++ b/static/images/farmer/flower/flower-mange-icon-flower-unpass.png Binary files differ -- Gitblit v1.9.3