From e6a02c8b09a796e436a501e9b87d19e25c34c9d1 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期日, 07 四月 2024 15:53:37 +0800 Subject: [PATCH] # --- uni_modules/uni-section/components/uni-section/uni-section.vue | 167 ++++++ uni_modules/uni-section/readme.md | 8 pages/business/process/dayStroke.vue | 143 +++++ pages.json | 52 ++ pages/business/process/dayDetl.vue | 131 +++++ pages/business/process/weeklySelect.vue | 251 ++++++++++ uni_modules/uni-section/changelog.md | 2 main.js | 2 pages/business/business.vue | 18 pages/business/process/weekly.vue | 301 ++++++++++++ pages/business/process/dayStrokeCreate.vue | 281 +++++++++++ uni_modules/uni-section/package.json | 87 +++ 12 files changed, 1,442 insertions(+), 1 deletions(-) diff --git a/main.js b/main.js index ba4f953..364f80d 100644 --- a/main.js +++ b/main.js @@ -6,7 +6,7 @@ Vue.use(uView) Vue.config.productionTip = false // Vue.prototype.baseUrl = 'http://crm.zoneyung.net' -Vue.prototype.baseUrl = 'http://192.168.4.188:9528' +Vue.prototype.baseUrl = 'http://192.168.4.46:9528' App.mpType = 'app' const app = new Vue({ ...App diff --git a/pages.json b/pages.json index 2772f8e..3f0e94d 100644 --- a/pages.json +++ b/pages.json @@ -340,6 +340,58 @@ "enablePullDownRefresh" : false } }, + // { + // "path" : "pages/business/process/weekly", + // "style" : + // { + // "navigationBarTitleText" : "鍛�/鏃ユ姤", + // "enablePullDownRefresh" : false + // } + // }, + { + "path": "pages/business/process/weekly", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "鍛�/鏃ユ姤" + + } + }, + { + "path" : "pages/business/process/weeklySelect", + "style" : + { + "navigationBarTitleText" : "閫夋嫨鏃ユ湡", + "enablePullDownRefresh" : false, + "navigationStyle": "custom" + } + }, + { + "path" : "pages/business/process/dayDetl", + "style" : + { + "navigationBarTitleText" : "璇︽儏", + "enablePullDownRefresh" : false, + "navigationStyle": "custom" + } + }, + { + "path" : "pages/business/process/dayStroke", + "style" : + { + "navigationBarTitleText" : "鏃ヨ绋�", + "enablePullDownRefresh" : false, + "navigationStyle": "custom" + } + }, + { + "path" : "pages/business/process/dayStrokeCreate", + "style" : + { + "navigationBarTitleText" : "鏂板缓鏃ヨ绋�", + "enablePullDownRefresh" : false, + "navigationStyle": "custom" + } + }, { "path" : "pages/business/plan/modiPlan7", "style" : diff --git a/pages/business/business.vue b/pages/business/business.vue index d6afd05..1eff091 100644 --- a/pages/business/business.vue +++ b/pages/business/business.vue @@ -45,6 +45,21 @@ </view> <view class="item-sort"> <view> + <y-title title="杩囩▼绠$悊" /> + </view> + <view class="grid-container"> + <view class="item" @click="select(11)"> + <view class="img"> + <image src="../../static/image/zhantiepeizhi.png" mode="aspectFit"></image> + </view> + <view>鍛�/鏃ユ姤</view> + </view> + + </view> + + </view> + <view class="item-sort"> + <view> <y-title title="鍑哄樊绠$悊"></y-title> </view> <view class="grid-container"> @@ -137,6 +152,9 @@ case 10: url = `${url}/pricing/contract` break; + case 11: + url = `${url}/process/weekly` + break; } uni.navigateTo({ url:url diff --git a/pages/business/process/dayDetl.vue b/pages/business/process/dayDetl.vue new file mode 100644 index 0000000..271c527 --- /dev/null +++ b/pages/business/process/dayDetl.vue @@ -0,0 +1,131 @@ +<template> + <view> + <view class="status_bar"> + <!-- 杩欓噷鏄姸鎬佹爮 --> + </view> + <uni-nav-bar left-icon="left" title="璇︽儏" @clickLeft="back" @clickRight="scan" :fixed="true" + :border="false" rightWidth="160rpx" leftWidth="160rpx" + > + + </uni-nav-bar> + + <view class="card"> + <view class="box" v-for="item in list"> + <view class="box-single-row flex-row" v-for="rule in listRule"> + <view style="flex: 1;">{{rule.label}}</view> + <view style="flex: 4;">{{item[rule.attribute]}}</view> + </view> + </view> + </view> + + <view class="main-box"> + <view class="box"> + <view class="box-title">娴佺▼鍔ㄦ��</view> + <u-steps :current="current" direction="column"> + <u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in steps" /> + </u-steps> + </view> + </view> + </view> +</template> + +<script> + export default { + data(){ + return{ + list: [], + listRule: [{ + label: "鏄熸湡", + attribute: "weeklyDay$", + }, + { + label: "鏃ユ湡", + attribute: "dailyTime$", + }, + { + label: "宸ヤ綔鍐呭", + attribute: "workContent", + }, + { + label: "宸ヤ綔鐩殑", + attribute: "workPurpose", + }, + { + label: "璇勮", + attribute: "comment", + }, + { + label: "闇�鍗忓姪浜嬮」", + attribute: "province", + }, + + { + label: "鐢叉柟鍗曚綅", + attribute: "cstmrId$", + }, + { + label: "澶囨敞", + attribute: "memo", + }, + { + label: "鏇存柊鏃堕棿", + attribute: "updateTime$", + }, + ], + current:0, + steps:[] + } + }, + onLoad(option) { + let _this = this + _this.list = [] + const eventChannel = this.getOpenerEventChannel(); + eventChannel.on('day', function(data) { + console.log(data.data) + _this.list.push(data.data) + _this.current = data.data.settle-1 + this.steps = data.data.settleMsg + }) + + }, + methods:{ + + back() { + uni.navigateBack({}) + }, + scan() { + uni.navigateTo({ + url: '/pages/authority/authority' + }) + }, + } + } + +</script> + +<style> + .status_bar { + height: var(--status-bar-height); + width: 100%; + background-color: #FFF; + position: sticky; + top: 0; + } + .card{ + border-radius: 20rpx; + } + .box { + margin: 16rpx 8rpx; + /* height: 200px; */ + box-shadow: 0 0 5px #dddddd; + background-color: #FFF; + padding: 16rpx 32rpx; + position: relative; + border-radius: 20rpx; + font-size: 24rpx; + /* color: #bdbdbd; */ + } + .box-single-row { + display: flex; + } +</style> \ No newline at end of file diff --git a/pages/business/process/dayStroke.vue b/pages/business/process/dayStroke.vue new file mode 100644 index 0000000..ffff072 --- /dev/null +++ b/pages/business/process/dayStroke.vue @@ -0,0 +1,143 @@ +<template> + <view> + <view class="status_bar"> + <!-- 杩欓噷鏄姸鎬佹爮 --> + </view> + <uni-nav-bar left-icon="left" title="鏃ヨ绋�" @clickLeft="back" @clickRight="scan" :fixed="true" + :border="false" rightWidth="160rpx" leftWidth="160rpx" + > + + </uni-nav-bar> + + <view class="card"> + <view class="box" v-for="item in list"> + <view class="box-single-row flex-row" v-for="rule in listRule"> + <view style="flex: 1;">{{rule.label}}</view> + <view style="flex: 4;">{{item[rule.attribute]}}</view> + </view> + </view> + </view> + + <!-- <view class="main-box"> + <view class="box"> + <view class="box-title">娴佺▼鍔ㄦ��</view> + <u-steps :current="current" direction="column"> + <u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in steps" /> + </u-steps> + </view> + </view> --> + </view> +</template> + +<script> + export default { + data(){ + return{ + list: [], + listRule: [{ + label: "鏄熸湡", + attribute: "weeklyDay$", + }, + { + label: "鏃ユ湡", + attribute: "dailyTime$", + }, + { + label: "宸ヤ綔鍐呭", + attribute: "workContent", + }, + { + label: "宸ヤ綔鐩殑", + attribute: "workPurpose", + }, + { + label: "璇勮", + attribute: "comment", + }, + { + label: "闇�鍗忓姪浜嬮」", + attribute: "province", + }, + + { + label: "鐢叉柟鍗曚綅", + attribute: "cstmrId$", + }, + { + label: "澶囨敞", + attribute: "memo", + }, + { + label: "鏇存柊鏃堕棿", + attribute: "updateTime$", + }, + ], + current:0, + steps:[] + } + }, + onLoad(option) { + let _this = this + _this.list = [] + const eventChannel = this.getOpenerEventChannel(); + eventChannel.on('dayStroke', function(data) { + _this.current = data.data.settle-1 + uni.request({ + url: `${_this.baseUrl}/weeklyDailyReality/mobile/phone/get/kv`, + // method: 'POST', + header: { 'token': uni.getStorageSync('token') }, + data: { + weeklyId: data.data.weeklyId, + weeklyDay: data.data.weeklyDay + }, + success(res) { + console.log(res) + res = res.data.data + _this.list = res + + } + }) + }) + + }, + methods:{ + + back() { + uni.navigateBack({}) + }, + scan() { + uni.navigateTo({ + url: '/pages/authority/authority' + }) + }, + } + } + +</script> + +<style> + .status_bar { + height: var(--status-bar-height); + width: 100%; + background-color: #FFF; + position: sticky; + top: 0; + } + .card{ + border-radius: 20rpx; + } + .box { + margin: 16rpx 8rpx; + /* height: 200px; */ + box-shadow: 0 0 5px #dddddd; + background-color: #FFF; + padding: 16rpx 32rpx; + position: relative; + border-radius: 20rpx; + font-size: 24rpx; + /* color: #bdbdbd; */ + } + .box-single-row { + display: flex; + } +</style> \ No newline at end of file diff --git a/pages/business/process/dayStrokeCreate.vue b/pages/business/process/dayStrokeCreate.vue new file mode 100644 index 0000000..9072d89 --- /dev/null +++ b/pages/business/process/dayStrokeCreate.vue @@ -0,0 +1,281 @@ +<template> + <view> + <view class="status_bar"> + <!-- 杩欓噷鏄姸鎬佹爮 --> + </view> + <uni-nav-bar left-icon="left" title="鍒涘缓鏃ヨ绋�" @clickLeft="back" @clickRight="scan" :fixed="true" + :border="false" rightWidth="160rpx" leftWidth="160rpx" + > + + </uni-nav-bar> + + <view class="card"> + <view class="box"> + <view class="box-single-row flex-row"> + <view style="flex: 1;">鏄熸湡</view> + <view style="flex: 4;"> + {{list.weeklyDay$}} + </view> + </view> + <view class="box-single-row flex-row"> + <view style="flex: 1;">鏃ユ湡</view> + <view style="flex: 4;"> + {{list.dailyTime$}} + </view> + </view> + <view class="box-single-row flex-row"> + <view style="flex: 1;">宸ヤ綔鍐呭</view> + <view style="flex: 4;"> + <input class="inputCss" type="text" v-model="workContent"> + </view> + </view> + <view class="box-single-row flex-row"> + <view style="flex: 1;">宸ヤ綔鐩殑</view> + <view style="flex: 4;"> + <input class="inputCss" type="text" v-model="workPurpose"> + </view> + </view> + <view class="box-single-row flex-row"> + <view style="flex: 1;">闇�鍗忓姪浜嬮」</view> + <view style="flex: 3;"> + <input class="inputCss" type="text" v-model="weeklyMatter"> + </view> + </view> + <view class="box-single-row flex-row"> + <view style="flex: 1;">鐢叉柟鍗曚綅</view> + <view style="flex: 4;"> + <uni-combox :border="false" class="inputCss" style="border-radius: 0;" :candidates="companys" v-model="company" @input=""></uni-combox> + </view> + </view> + </view> + </view> + + <!-- <view class="main-box"> + <view class="box"> + <view class="box-title">娴佺▼鍔ㄦ��</view> + <u-steps :current="current" direction="column"> + <u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in steps" /> + </u-steps> + </view> + </view> --> + <view class="floor"> + <!-- <view class="wran" @click="del()">鍒犻櫎</view> --> + <view class="default" @click="reset()">閲嶇疆</view> + <view class="primary" @click="submit()">鎻愪氦</view> + </view> + <view> + <!-- 鎻愮ず淇℃伅寮圭獥 --> + <uni-popup ref="message" type="message"> + <uni-popup-message :type="msgType1" :message="messageText" :duration="2000"></uni-popup-message> + </uni-popup> + </view> + </view> +</template> + +<script> + export default { + data(){ + return{ + list: [], + listRule: [{ + label: "鏄熸湡", + attribute: "weeklyDay$", + }, + { + label: "鏃ユ湡", + attribute: "dailyTime$", + }, + { + label: "宸ヤ綔鍐呭", + attribute: "workContent", + }, + { + label: "宸ヤ綔鐩殑", + attribute: "workPurpose", + }, + { + label: "璇勮", + attribute: "comment", + }, + { + label: "闇�鍗忓姪浜嬮」", + attribute: "province", + }, + + { + label: "鐢叉柟鍗曚綅", + attribute: "cstmrId$", + }, + { + label: "澶囨敞", + attribute: "memo", + }, + { + label: "鏇存柊鏃堕棿", + attribute: "updateTime$", + }, + ], + current:0, + steps:[], + workContent:'', + workPurpose:'', + weeklyMatter:'', + companys:[], + company:'', + messageText:'', + msgType1: 'success', + } + }, + onLoad(option) { + let _this = this + _this.list = [] + const eventChannel = this.getOpenerEventChannel(); + eventChannel.on('dayStrokeCreate', function(data) { + _this.list = data.data + uni.request({ + url: `${_this.baseUrl}/cstmr/all/get/kv`, + // method: 'POST', + header: { 'token': uni.getStorageSync('token') }, + success(res) { + console.log(res) + res = res.data.data + for (var i = 0,keys = Object.keys(res); i< keys.length; i++){ + console.log(res[keys[i]].name); + _this.companys.push(res[keys[i]].name); + } + // + + + } + }) + }) + + }, + methods:{ + submit(){ + let that = this + let params = [] + let param = { + weeklyDay: that.list.weeklyDay, + dailyTime: that.list.dailyTime, + workContent: that.workContent, + workPurpose: that.workPurpose, + weeklyMatter: that.weeklyMatter, + cstmrName: that.company + } + params.push(param) + uni.request({ + url: `${that.baseUrl}/weekly/from/add/phone/auth`, + method: 'POST', + header: { 'token': uni.getStorageSync('token') }, + data:JSON.stringify({ + weeklyId: that.list.weeklyId, + weeklyType: that.list.weeklyType, + weeklyDailyRealityList: params + }), + success(res) { + console.log(res) + res = res.data + if (res.code === 200 ) { + that.reset(); + that.messageText = "鍒涘缓鎴愬姛" + that.messageToggle('success') + // that.save() + } else if (res.code == 403) { + uni.showToast({title: res.msg, icon: "none", position: 'top'}) + setTimeout(() => { + uni.reLaunch({ + url: '../login/login' + }); + }, 1000); + } else { + uni.showToast({title: res.msg, icon: "none",position: 'top'}) + } + } + // + + + }) + + }, + messageToggle(type) { + this.msgType1 = type + this.$refs.message.open() + }, + reset(){ + let that = this + that.workContent = '' + that.workPurpose = '' + that.weeklyMatter = '' + that.company = '' + }, + back() { + uni.navigateBack({}) + }, + scan() { + uni.navigateTo({ + url: '/pages/authority/authority' + }) + }, + } + } + +</script> + +<style> + .status_bar { + height: var(--status-bar-height); + width: 100%; + background-color: #FFF; + position: sticky; + top: 0; + } + .card{ + border-radius: 20rpx; + } + .box { + margin: 16rpx 8rpx; + /* height: 200px; */ + box-shadow: 0 0 5px #dddddd; + background-color: #FFF; + padding: 16rpx 32rpx; + position: relative; + border-radius: 20rpx; + font-size: 24rpx; + /* color: #bdbdbd; */ + } + .box-single-row { + margin-bottom: 20rpx; + display: flex; + } + .inputCss{ + border-bottom: 1px #a5a5a5 solid; + } + .floor { + height: 100rpx; + line-height: 100rpx; + width: 100%; + background-color: #fff; + position: fixed; + bottom: 0; + left: 0; + display: flex; + align-items: center; + text-align: center; + letter-spacing: 10rpx; + } + .default { + flex: 2; + } + .default:active { + background-color: #eff0f1; + } + .primary { + flex: 3; + background-color: #2d8cf0; + color: #fff; + } + .primary:active { + background-color: #007dea; + } +</style> \ No newline at end of file diff --git a/pages/business/process/weekly.vue b/pages/business/process/weekly.vue new file mode 100644 index 0000000..3a1abb8 --- /dev/null +++ b/pages/business/process/weekly.vue @@ -0,0 +1,301 @@ +<template> + <view> + <view class="status_bar"> + <!-- 杩欓噷鏄姸鎬佹爮 --> + </view> + <uni-nav-bar left-icon="left" title="鍛�/鏃ユ姤" @clickLeft="back" @clickRight="scan" :fixed="true" + :border="false" rightWidth="160rpx" leftWidth="160rpx" + > + <block slot="right"> + <view class="city"> + <view> + <text class="uni-nav-bar-text">{{user.username}}</text> + </view> + <uni-icons type="arrowdown" color="#333333" size="20" /> + </view> + </block> + </uni-nav-bar> + <!-- 鎼滅储妗� --> + <view class="search-bg"> + <u-search placeholder="杈撳叆" v-model="keyword" :clearabled="true" @custom="search()" @search="search()"></u-search> + </view> + + <view class="main-box"> + <view class="box" v-for="item in list" > + <view @click="goDetl(item)"> + <view style="display: flex;"> + <view class="box-title" style="flex: 1;">{{item.userId$}}鎻愪氦鐨勫懆鎶�</view> + <view class="box-time">{{item.weeklyYear+' '+item.weeklyDayMonth}}</view> + </view> + <!-- <view class="box-item">鎶ラ攢绫诲瀷:{{item.templateName}}</view> + <view class="box-item">鏄惁鍐茶处:{{item.businessTripDays$}}</view> --> + <view style="display: flex;"> + <view class="box-item" style="flex: 1;">鐘舵��:{{item.status$}}</view> + <view class="box-settle" :style="item.bgcolor">{{item.settle$}}</view> + </view> + </view> + <view > + <uni-collapse accordion v-model="accordionVal" @change="change"> + <uni-collapse-item> + <template v-slot:title> + <text style="font-size: 13px;">娴佺▼璇︽儏</text> + </template> + <view class="box"> + <view > + <u-steps :current="item.settleCurrent-1" direction="column"> + <u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in JSON.parse(item.settleMsg)" /> + </u-steps> + </view> + </view> + </uni-collapse-item> + </uni-collapse> + + </view> + </view> + + </view> + + <u-empty v-if="true" icon="../../../static/image/emptyList.png" v-show="list.length <= 0" /> + <view class="fxbtn"> + <uni-icons type="plusempty" color="#fff" @click="add()" ></uni-icons> + </view> + </view> +</template> + +<script> + import user from '@/pages/api/user/user.js' + export default { + data() { + return { + keyword: '', + user: { + username: '', + id: 0, + type: '' + }, + falg: true, + list: [], + curr: 2, + reload: false, + status: 'more', + current:0, + steps:[], + accordionVal:'', + steps:[] + } + }, + onShow() { + let that = this + uni.$on('isRefresh',function(data){ + that.user.username = data.title + that.user.id = data.id + that.user.type = data.key + that.falg = false + }) + if (this.falg) { + this.getDetail() + } + setTimeout(()=> { + this.getReimburseOnline1() + },50) + }, + onReachBottom() { + this.status = 'more'; + this.getReimburseOnline() + }, + methods: { + change(e){ + + }, + getReimburseOnline1() { + let _this = this + _this.list = [] + uni.showLoading({}) + let param = {curr:1,limit:8,dept_id: 0,user_id: 67} + if (_this.user.type == 'user_id') { + param = {curr:1,limit:8,user_id: _this.user.id} + } else if(_this.user.type == 'dept_id'){ + param = {curr:1,limit:8,dept_id: _this.user.id} + } else { + param = {curr:1,limit:8} + } + uni.request({ + url: `${_this.baseUrl}/weekly/list/auth`, + header: { 'token': uni.getStorageSync('token') }, + data: param, + success(res) { + res = res.data + if (res.code === 200) { + for (let k of res.data.records) { + if (k.settle == 3) { + k['bgcolor'] = 'color: #12d489' + } else if (k.settle == 2) { + k['bgcolor'] = 'color: #ffbd67' + } + } + let list = res.data.records + _this.list = _this.reload ? list : _this.list.concat(list); + if (res.data.records.length == 0) { + _this.status = 'noMore' + } + } + }, + fail(result) { + uni.showToast({title: '璇锋眰澶辫触'}) + setTimeout(() => { + uni.reLaunch({ + url: '../../login/login' + }); + }, 1000); + }, + complete() { + uni.hideLoading() + } + }) + }, + getReimburseOnline() { + let _this = this + uni.showLoading({}) + let param = {curr:_this.curr,limit:8,dept_id: 0,user_id: 67} + if (this.user.type == 'user_id') { + param = {curr:_this.curr,limit:8,user_id: _this.user.id} + } else if(this.user.type == 'dept_id') { + param = {curr:_this.curr,limit:8,dept_id: _this.user.id} + } else { + param = {curr:_this.curr,limit:8} + } + uni.request({ + url: `${_this.baseUrl}/reimburseOnline/list/auth`, + header: { 'token': uni.getStorageSync('token') }, + data: param, + success(res) { + res = res.data + if (res.code === 200) { + for (let k of res.data.records) { + if (k.settle == 3) { + k['bgcolor'] = 'color: #12d489' + } else if (k.settle == 2) { + k['bgcolor'] = 'color: #ffbd67' + } + } + let list = res.data.records + _this.list = _this.reload ? list : _this.list.concat(list); + _this.curr = _this.curr + 1 + if (res.data.records.length == 0) { + _this.status = 'noMore' + } + } + }, + fail(result) { + uni.showToast({title: '璇锋眰澶辫触'}) + setTimeout(() => { + uni.reLaunch({ + url: '../../login/login' + }); + }, 1000); + }, + complete() { + uni.hideLoading() + } + }) + }, + async getDetail() { + let res = await user.getDetail() + if (res.code === 200) { + this.user.username = res.data.username + this.user.id = res.data.id + } else if (res.code === 403) { + this.backLogin(res) + } + }, + add() { + uni.navigateTo({ + url: '/pages/business/process/weeklySelect', + success: function(res) { + res.eventChannel.emit('reimburseOnlineDetl', { + data: 'add' + }) + } + }) + }, + goDetl(e) { + // console.log(e); + uni.navigateTo({ + url: '/pages/business/process/weeklySelect', + success: function(res) { + res.eventChannel.emit('weekly', { + data: e + }) + } + }) + }, + back() { + uni.navigateBack({}) + }, + scan() { + uni.navigateTo({ + url: '/pages/authority/authority' + }) + }, + } + } +</script> + +<style> + .flex-row { + display: flex; + } + + .flex-col { + display: flex; + flex-direction: column; + } + + .main-box { + /* margin: 16rpx; */ + /* background-color: #FFF; */ + border-radius: 20rpx; + padding: 8rpx; + } + + .box { + margin: 16rpx 8rpx; + /* height: 200px; */ + box-shadow: 0 0 5px #dddddd; + background-color: #FFF; + padding: 16rpx 32rpx; + position: relative; + border-radius: 20rpx; + font-size: 24rpx; + color: #bdbdbd; + } + + .box-flag { + position: absolute; + right: 0; + top: 10rpx; + background-color: #74B9E9; + padding: 6rpx; + font-size: 10rpx; + color: #FFF; + } + + .box-time { + color: #bdbdbd; + } + + .box-settle { + font-size: 26rpx; + /* font-weight: bold; */ + } + + .box-title { + font-size: 28rpx; + font-weight: bold; + color: #000; + } + + .box-single-row {} + + +</style> \ No newline at end of file diff --git a/pages/business/process/weeklySelect.vue b/pages/business/process/weeklySelect.vue new file mode 100644 index 0000000..e3c87b2 --- /dev/null +++ b/pages/business/process/weeklySelect.vue @@ -0,0 +1,251 @@ +<template> + <view> + <view class="status_bar"> + <!-- 杩欓噷鏄姸鎬佹爮 --> + </view> + <uni-nav-bar left-icon="left" title="鏃ヨ鍒�" @clickLeft="back" @clickRight="scan" :fixed="true" + :border="false" rightWidth="160rpx" leftWidth="160rpx" + > + <block slot="right"> + <view class="city"> + <view> + <text class="uni-nav-bar-text">{{user.username}}</text> + </view> + <uni-icons type="arrowdown" color="#333333" size="20" /> + </view> + </block> + </uni-nav-bar> + + <view class="card" v-for="item in items" > + <view class=card @click="goDetl(item)"> + <view class="item100noborder" > + <view class="box-time" style="flex: 1;">{{item.weeklyDay$}}</view> + <view class="box-time">{{item.dailyTime$}}</view> + </view> + <view class="item100"> + <view class="code-decs">宸ヤ綔鍐呭</view> + {{item.workContent}} + </view> + <view class="item100"> + <view class="code-decs">宸ヤ綔鐩殑</view> + {{item.workPurpose}} + </view> + <view class="item100"> + <view class="code-decs">鐢叉柟鍗曚綅</view> + {{item.cstmrId$}} + </view> + </view> + + <view class="buttomcss"> + <button size="mini" class="mini-btn" type="default" @click="goDayStroke(item)">鏌ョ湅褰撳墠鏃ヨ绋�</button> + <button size="mini" class="mini-btn" type="primary" @click="goDayStrokeCreate(item)">鍒涘缓鏃ヨ绋�</button> + </view> + + + </view> + + </view> +</template> + +<script> + export default { + data() { + return { + user: { + username: '', + id: 0, + type: '' + }, + token: '', + items:[] + + } + }, + onShow() { + // this.baseUrl = uni.getStorageSync('baseUrl'); + this.token = uni.getStorageSync('token'); + + }, + onLoad(option) { + let _this = this + _this.items = [] + const eventChannel = this.getOpenerEventChannel(); + eventChannel.on('weekly', function(data) { + + uni.request({ + url: `${_this.baseUrl}/weeklyDailyPlan/list/auth`, + // method: 'POST', + header: { 'token': uni.getStorageSync('token') }, + data: { + weekly_id: data.data.id + }, + success(res) { + res = res.data.data + _this.items = res.records + console.log(res.records) + } + }) + _this.items = data + console.log(data); + + }) + + }, + methods: { + goDayStrokeCreate(e){ + uni.navigateTo({ + url: '/pages/business/process/dayStrokeCreate', + success: function(res) { + res.eventChannel.emit('dayStrokeCreate', { + data: e + }) + } + }) + }, + goDayStroke(e){ + uni.navigateTo({ + url: '/pages/business/process/dayStroke', + success: function(res) { + res.eventChannel.emit('dayStroke', { + data: e + }) + } + }) + }, + goDetl(e) { + // console.log(e); + uni.navigateTo({ + url: '/pages/business/process/dayDetl', + success: function(res) { + res.eventChannel.emit('day', { + data: e + }) + } + }) + }, + getOrderNoList() { + let that = this + uni.request({ + url: this.baseUrl + '/originRule/list/all', + method: 'POST', + success(res) { + res = res.data + that.menuList = res.data + } + }) + }, + chose(item) { + let that = this + uni.navigateTo({ + url: "./goodsUp2", + success: function(res) { + // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑 + res.eventChannel.emit('item', { + item: item + }) + }, + events: { + // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� 鍙﹀涓�涓〉闈紶杩囨潵鐨� + acceptDataFromOpenedPage: function(data) { + // that.matnr = data.data + that.input(that.matnr) + }, + }, + + + }); + }, + back() { + uni.navigateBack({}) + },scan() { + uni.navigateTo({ + url: '/pages/authority/authority' + }) + }, + } + } +</script> + +<style> + .box-time { + color: #bdbdbd; + } + .card { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin: 20rpx; + background-color: #ffffff; + border-radius: 20rpx; + color: #000000; + } + .card2 { + display: flex; + flex-wrap: wrap; + padding: 20rpx; + justify-content: space-between; + background-color: #ffffff; + border-radius: 20rpx; + color: #000000; + } + .uni-pb-5 { + padding-bottom: 10px; + } + .uni-px-5 { + padding-left: 10px; + padding-right: 10px; + } + .buttom { + width: 100%; + position: fixed; + bottom: 0; + left: 0; + display: flex; + align-items: center; + justify-content: space-between; + height: 100rpx; + background-color: #FFF; + box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.2) ; + } + .item { + width: 40%; + display: flex; + align-items: center; + height: 70rpx; + padding: 0px 10upx 0px; + /* margin-left: 20rpx; */ + border-bottom: 1px solid #b7b7b7; + } + .item100 { + width: 100%; + display: flex; + align-items: center; + height: 70rpx; + padding: 0px 10upx 0px; + /* margin-left: 20rpx; */ + border-bottom: 1px solid #b7b7b7; + } + .item100noborder { + width: 100%; + display: flex; + align-items: center; + height: 70rpx; + padding: 0px 10upx 0px; + /* margin-top: 0rpx; */ + /* border-bottom: 1px solid #000000; */ + } + .code-decs { + width: 20vw; + font-size: 15px; + color: #8c8c8c; + } + .buttomcss { + display: flex; + width: 100%; + margin: 0 0 5px; + /* text-align: center; */ + } + button{ + font-size: 10rpx; + } +</style> diff --git a/uni_modules/uni-section/changelog.md b/uni_modules/uni-section/changelog.md new file mode 100644 index 0000000..738f2b3 --- /dev/null +++ b/uni_modules/uni-section/changelog.md @@ -0,0 +1,2 @@ +## 0.0.1锛�2022-07-22锛� +- 鍒濆鍖� diff --git a/uni_modules/uni-section/components/uni-section/uni-section.vue b/uni_modules/uni-section/components/uni-section/uni-section.vue new file mode 100644 index 0000000..9a52e0b --- /dev/null +++ b/uni_modules/uni-section/components/uni-section/uni-section.vue @@ -0,0 +1,167 @@ +<template> + <view class="uni-section"> + <view class="uni-section-header" @click="onClick"> + <view class="uni-section-header__decoration" v-if="type" :class="type" /> + <slot v-else name="decoration"></slot> + + <view class="uni-section-header__content"> + <text :style="{'font-size':titleFontSize,'color':titleColor}" class="uni-section__content-title" :class="{'distraction':!subTitle}">{{ title }}</text> + <text v-if="subTitle" :style="{'font-size':subTitleFontSize,'color':subTitleColor}" class="uni-section-header__content-sub">{{ subTitle }}</text> + </view> + + <view class="uni-section-header__slot-right"> + <slot name="right"></slot> + </view> + </view> + + <view class="uni-section-content" :style="{padding: _padding}"> + <slot /> + </view> + </view> +</template> + +<script> + + /** + * Section 鏍囬鏍� + * @description 鏍囬鏍� + * @property {String} type = [line|circle|square] 鏍囬瑁呴グ绫诲瀷 + * @value line 绔栫嚎 + * @value circle 鍦嗗舰 + * @value square 姝f柟褰� + * @property {String} title 涓绘爣棰� + * @property {String} titleFontSize 涓绘爣棰樺瓧浣撳ぇ灏� + * @property {String} titleColor 涓绘爣棰樺瓧浣撻鑹� + * @property {String} subTitle 鍓爣棰� + * @property {String} subTitleFontSize 鍓爣棰樺瓧浣撳ぇ灏� + * @property {String} subTitleColor 鍓爣棰樺瓧浣撻鑹� + * @property {String} padding 榛樿鎻掓Ы padding + */ + + export default { + name: 'UniSection', + emits:['click'], + props: { + type: { + type: String, + default: '' + }, + title: { + type: String, + required: true, + default: '' + }, + titleFontSize: { + type: String, + default: '14px' + }, + titleColor:{ + type: String, + default: '#333' + }, + subTitle: { + type: String, + default: '' + }, + subTitleFontSize: { + type: String, + default: '12px' + }, + subTitleColor: { + type: String, + default: '#999' + }, + padding: { + type: [Boolean, String], + default: false + } + }, + computed:{ + _padding(){ + if(typeof this.padding === 'string'){ + return this.padding + } + + return this.padding?'10px':'' + } + }, + watch: { + title(newVal) { + if (uni.report && newVal !== '') { + uni.report('title', newVal) + } + } + }, + methods: { + onClick() { + this.$emit('click') + } + } + } +</script> +<style lang="scss" > + $uni-primary: #2979ff !default; + + .uni-section { + background-color: #fff; + .uni-section-header { + position: relative; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: row; + align-items: center; + padding: 12px 10px; + font-weight: normal; + + &__decoration{ + margin-right: 6px; + background-color: $uni-primary; + &.line { + width: 4px; + height: 12px; + border-radius: 10px; + } + + &.circle { + width: 8px; + height: 8px; + border-top-right-radius: 50px; + border-top-left-radius: 50px; + border-bottom-left-radius: 50px; + border-bottom-right-radius: 50px; + } + + &.square { + width: 8px; + height: 8px; + } + } + + &__content { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: column; + flex: 1; + color: #333; + + .distraction { + flex-direction: row; + align-items: center; + } + &-sub { + margin-top: 2px; + } + } + + &__slot-right{ + font-size: 14px; + } + } + + .uni-section-content{ + font-size: 14px; + } + } +</style> diff --git a/uni_modules/uni-section/package.json b/uni_modules/uni-section/package.json new file mode 100644 index 0000000..0a31fb5 --- /dev/null +++ b/uni_modules/uni-section/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-section", + "displayName": "uni-section 鏍囬鏍�", + "version": "0.0.1", + "description": "鏍囬鏍忕粍浠�", + "keywords": [ + "uni-ui", + "uniui", + "鏍囬鏍�" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "鍓嶇缁勪欢", + "閫氱敤缁勪欢" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "鏃�", + "data": "鏃�", + "permissions": "鏃�" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "寰俊娴忚鍣�(Android)": "y", + "QQ娴忚鍣�(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "灏忕▼搴�": { + "寰俊": "y", + "闃块噷": "y", + "鐧惧害": "y", + "瀛楄妭璺冲姩": "y", + "QQ": "y" + }, + "蹇簲鐢�": { + "鍗庝负": "u", + "鑱旂洘": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-section/readme.md b/uni_modules/uni-section/readme.md new file mode 100644 index 0000000..d47faab --- /dev/null +++ b/uni_modules/uni-section/readme.md @@ -0,0 +1,8 @@ +## Section 鏍囬鏍� +> **缁勪欢鍚嶏細uni-section** +> 浠g爜鍧楋細 `uSection` + +uni-section 缁勪欢涓昏鐢ㄤ簬鏂囩珷銆佸垪琛ㄨ鎯呯瓑鏍囬灞曠ず + +### [鏌ョ湅鏂囨。](https://uniapp.dcloud.io/component/uniui/uni-section) +#### 濡備娇鐢ㄨ繃绋嬩腑鏈変换浣曢棶棰橈紝鎴栬�呮偍瀵箄ni-ui鏈変竴浜涘ソ鐨勫缓璁紝娆㈣繋鍔犲叆 uni-ui 浜ゆ祦缇わ細871950839 -- Gitblit v1.9.1