9 files deleted
89 files added
31 files modified
| | |
| | | 纠纷描述 |
| | | <text class="cell-required">(必填)</text> |
| | | </view> |
| | | <van-field autosize="{{ { maxHeight: 88, minHeight: 22 } }}" bind:change="handleChange" border="{{ false }}" custom-style="padding:0;" data-key="caseDes" placeholder="请简要描述纠纷发生的时间、地点及经过" type="textarea" value="{{ submitData.caseDes }}" /> |
| | | <van-field autosize="{{ { maxHeight: 88, minHeight: 88 } }}" bind:change="handleChange" border="{{ false }}" custom-style="padding:0;" data-key="caseDes" placeholder="请简要描述纠纷发生的时间、地点及经过请简要描述纠纷发生的时间、地点及经过请简要描述纠纷发生的时间、地点及经过" type="textarea" value="{{ submitData.caseDes }}" /> |
| | | <!-- <view class="case"> |
| | | <view class="img-case_2"> |
| | | <image src="/img/case_1.png" class="img1"></image> |
| | |
| | | |
| | | |
| | | // === 测试环境 === |
| | | debug: 'https://gz.hugeinfo.com.cn/', |
| | | // debug: 'http://refa5j.natappfree.cc/', |
| | | img: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/images/', |
| | | assets: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/js/', |
| | | txt: 'https://gz.hugeinfo.com.cn/dyh/wx414ae04ac3f10b4e/txt/', |
| | | // debug: 'https://gz.hugeinfo.com.cn/', |
| | | debug: 'http://n3uvrw.natappfree.cc/', |
| | | img: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/images/', |
| | | assets: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/js/', |
| | | txt: 'http://120.79.193.119:9103/wx414ae04ac3f10b4e/txt/', |
| | | |
| | | |
| | | // === 正式环境 === |
| | |
| | | const $$ = require('./utils/util'); |
| | | |
| | | App({ |
| | | onLaunch() { |
| | | // 小程序更新 |
| | | const updateManager = wx.getUpdateManager(); |
| | | updateManager.onCheckForUpdate(function (res) { |
| | | // 请求完新版本信息的回调 |
| | | if (res.hasUpdate == true) { |
| | | updateManager.onUpdateReady(function () { |
| | | $$.loginOutClearData(); |
| | | wx.showModal({ |
| | | title: '更新提示', |
| | | content: '检测到新版本更新', |
| | | showCancel: false, |
| | | success(res) { |
| | | if (res.confirm) { |
| | | // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 |
| | | updateManager.applyUpdate(); |
| | | } |
| | | }, |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | updateManager.onUpdateFailed(function () { |
| | | // 新版本下载失败 |
| | | wx.showModal({ |
| | | title: '已经有新版本了哟~', |
| | | content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~', |
| | | }); |
| | | }); |
| | | // 获取缓存的token |
| | | let userInfo = wx.getStorageSync('userInfo'); |
| | | if (userInfo) { |
| | | this.globalData.token = userInfo.token; |
| | | } |
| | | }, |
| | | globalData: { |
| | | token: '', // 用户token |
| | | material: { |
| | | uploadVisible: false, |
| | | data: [], // 材料上传的数据 |
| | | person: [], // 申请调解页面进入附件上传页面时,需要传递的申请人,代理人,被申请人的数据,便于身份材料时选择 |
| | | }, |
| | | caseMsg: {}, // 案件详情,用于我的申请时跳转到其他页面传输案件的数据。 |
| | | }, |
| | | }); |
| | | onLaunch() { |
| | | // 字体 |
| | | wx.loadFontFace({ |
| | | family: 'DingTalk', // 字体名称 |
| | | source: 'url("../../font/DingTalk_JinBuTi_Regular.ttf")', |
| | | global: true, // 是否全局生效 |
| | | }) |
| | | // 小程序更新 |
| | | const updateManager = wx.getUpdateManager(); |
| | | updateManager.onCheckForUpdate(function (res) { |
| | | // 请求完新版本信息的回调 |
| | | if (res.hasUpdate == true) { |
| | | updateManager.onUpdateReady(function () { |
| | | $$.loginOutClearData(); |
| | | wx.showModal({ |
| | | title: '更新提示', |
| | | content: '检测到新版本更新', |
| | | showCancel: false, |
| | | success(res) { |
| | | if (res.confirm) { |
| | | // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 |
| | | updateManager.applyUpdate(); |
| | | } |
| | | }, |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | updateManager.onUpdateFailed(function () { |
| | | // 新版本下载失败 |
| | | wx.showModal({ |
| | | title: '已经有新版本了哟~', |
| | | content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~', |
| | | }); |
| | | }); |
| | | // 获取缓存的token |
| | | let userInfo = wx.getStorageSync('userInfo'); |
| | | if (userInfo) { |
| | | this.globalData.token = userInfo.token; |
| | | } |
| | | }, |
| | | globalData: { |
| | | token: '', // 用户token |
| | | material: { |
| | | uploadVisible: false, |
| | | data: [], // 材料上传的数据 |
| | | person: [], // 申请调解页面进入附件上传页面时,需要传递的申请人,代理人,被申请人的数据,便于身份材料时选择 |
| | | }, |
| | | caseMsg: {}, // 案件详情,用于我的申请时跳转到其他页面传输案件的数据。 |
| | | }, |
| | | }); |
| | |
| | | "pages/homePageInfo/index", |
| | | "pages/messageCenter/index", |
| | | "pages/register/index", |
| | | "pages/caseType/index", |
| | | "pages/addAddress/index", |
| | | "pages/speechToText/index", |
| | | "pages/addPerson/index", |
| | | "pages/myRegisterList/index", |
| | | "pages/myRegisterFlow/index", |
| | | "pages/autograph/index", |
| | | "pages/course/index", |
| | | "pages/orderConfirm/index", |
| | |
| | | "pages/agreement/index", |
| | | "pages/login/index", |
| | | "pages/webview/index", |
| | | "pages/classicCase/index" |
| | | "pages/classicCase/index", |
| | | "pages/ssimList/index", |
| | | "pages/ssimDetail/index", |
| | | "pages/organizeDetail/index", |
| | | "pages/organizeList/index" |
| | | |
| | | ], |
| | | "window": { |
| | | "backgroundTextStyle": "dark", |
| | | "navigationBarBackgroundColor": "#d10202", |
| | | "navigationBarTitleText": "云法调解微信小程序", |
| | | "navigationBarBackgroundColor": "#1A6FB8", |
| | | "navigationBarTitleText": "广州解纷码", |
| | | "navigationBarTextStyle": "white", |
| | | "backgroundColor": "#d10202", |
| | | "backgroundColorTop": "#d10202", |
| | |
| | | "van-picker": "./components/vant/picker/index", |
| | | "van-popup": "./components/vant/popup/index", |
| | | "van-row": "./components/vant/row/index", |
| | | "van-col": "./components/vant/col/index", |
| | | "van-col": "./components/vant/col/index", |
| | | "van-search": "./components/vant/search/index", |
| | | "van-divider": "./components/vant/divider/index", |
| | | "van-tab": "./components/vant/tab/index", |
| | |
| | | "van-cell": "./components/vant/cell/index", |
| | | "van-cell-group": "./components/vant/cell-group/index", |
| | | "van-field": "./components/vant/field/index", |
| | | "van-radio": "./components/vant/radio/index", |
| | | "van-radio-group": "./components/vant/radio-group/index", |
| | | "van-checkbox": "./components/vant/checkbox/index", |
| | | "van-checkbox-group": "./components/vant/checkbox-group/index", |
| | | "van-toast": "./components/vant/toast/index", |
| | | "van-sidebar-item": "./components/vant/sidebar-item/index", |
| | | "van-sidebar": "./components/vant/sidebar/index", |
| | | "van-grid": "./components/vant/grid/index", |
| | | "van-grid-item": "./components/vant/grid-item/index", |
| | | "van-datetime-picker": "./components/vant/datetime-picker/index", |
| | | "van-rate": "./components/vant/rate/index", |
| | | "van-switch": "./components/vant/switch/index" |
| | | }, |
| | | "lazyCodeLoading": "requiredComponents" |
| | |
| | | @import './styles/animate.wxss'; |
| | | @import './components/vant/common/index.wxss'; |
| | | |
| | | /* font-family */ |
| | | @font-face { |
| | | font-family: 'DingTalk'; |
| | | src: url('./font/DingTalk_JinBuTi_Regular.ttf') format('truetype'); |
| | | } |
| | | |
| | | page { |
| | | color: var(--text-color); |
| | | background-color: var(--bg-color); |
| | |
| | | }, |
| | | // 获取手机号码 |
| | | _handleGetPhoneNumber(e) { |
| | | console.log('eeeee',e); |
| | | this.triggerEvent('handleGetPhoneNumber', e.detail.code); |
| | | }, |
| | | // 获取个人信息 |
| | |
| | | <!--步骤条--> |
| | | <view class="steps"> |
| | | <block wx:if="{{ stepsType === 'number' }}"> |
| | | <view class="steps-item {{ index <= stepsActive && 'steps-item-active' }}" wx:for="{{ stepsData }}" wx:key="index"> |
| | | <view class="steps-item-round" wx:if="{{ index > stepsActive }}">{{ index + 1 }}</view> |
| | | <view class="steps-item-round" wx:else> |
| | | <van-icon name="success" /> |
| | | </view> |
| | | <view class="steps-item-text">{{ item }}</view> |
| | | <view class="steps-item-icon" wx:if="{{ index < stepsData.length - 1 }}"> |
| | | <block wx:if="{{ index > stepsActive }}"> |
| | | <van-icon name="{{ imgUrl }}steps-arrow.png" size="14" /> |
| | | </block> |
| | | <block wx:else> |
| | | <van-icon name="{{ imgUrl }}steps-arrow-active.png" size="14" /> |
| | | </block> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <block wx:else> |
| | | <view class="steps-item {{ index <= stepsActive && 'steps-item-active' }}" wx:for="{{ stepsData }}" wx:key="index"> |
| | | <view class="steps-item-round" wx:if="{{ index > stepsActive }}"> |
| | | <van-icon name="{{ imgUrl }}{{ item.icon }}" /> |
| | | </view> |
| | | <view class="steps-item-round" wx:else> |
| | | <van-icon name="{{ imgUrl }}{{ item.activeIcon }}" /> |
| | | </view> |
| | | <view class="steps-item-text">{{ item.title }}</view> |
| | | <view class="steps-item-icon" wx:if="{{ index < stepsData.length - 1 }}"> |
| | | <block wx:if="{{ index > stepsActive }}"> |
| | | <van-icon name="{{ imgUrl }}steps-arrow.png" size="14" /> |
| | | </block> |
| | | <block wx:else> |
| | | <van-icon name="{{ imgUrl }}steps-arrow-active.png" size="14" /> |
| | | </block> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | <block wx:if="{{ stepsType === 'number' }}"> |
| | | <view class="steps-item {{ index <= stepsActive && 'steps-item-active' }}" wx:for="{{ stepsData }}" wx:key="index"> |
| | | <view class="steps-item-round" wx:if="{{ index > stepsActive }}">{{ index + 1 }}</view> |
| | | <view class="steps-item-round" wx:else> |
| | | <van-icon name="success" /> |
| | | </view> |
| | | <view class="steps-item-text">{{ item }}</view> |
| | | <view class="steps-item-icon" wx:if="{{ index < stepsData.length - 1 }}"> |
| | | <block wx:if="{{ index > stepsActive }}"> |
| | | <van-icon name="{{ imgUrl }}steps-arrow.png" size="14" /> |
| | | </block> |
| | | <block wx:else> |
| | | <van-icon name="{{ imgUrl }}steps-arrow-active.png" size="14" /> |
| | | </block> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <block wx:else> |
| | | <view class="steps-item {{ index <= stepsActive && 'steps-item-active' }}" wx:for="{{ stepsData }}" wx:key="index"> |
| | | <view class="steps-item-round" wx:if="{{ index > stepsActive }}"> |
| | | <view class="steps-item-number">{{item.number}}</view> |
| | | </view> |
| | | <view class="steps-item-round" wx:if="{{ index === stepsActive }}"> |
| | | <view class="steps-item-number">{{item.number}}</view> |
| | | </view> |
| | | <view class="steps-item-round1" wx:if="{{ index < stepsActive }}"> |
| | | <van-icon name="success" /> |
| | | </view> |
| | | <view class="steps-item-text">{{ item.title }}</view> |
| | | <view class="steps-item-icon" wx:if="{{ index < stepsData.length - 1 }}"> |
| | | <block wx:if="{{ index > stepsActive }}"> |
| | | <view class="steps-item-line"></view> |
| | | </block> |
| | | <block wx:else> |
| | | <view class="steps-item-hoverLine"></view> |
| | | </block> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | |
| | | /* components/steps/index.wxss */ |
| | | .steps { |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: #ffffff; |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .steps-item { |
| | | position: relative; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | position: relative; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | color: rgba(23, 26, 29, 0.40); |
| | | } |
| | | |
| | | .steps-item-active, |
| | | .steps-item-active .steps-item-icon { |
| | | color: var(--main-color); |
| | | color: var(--main-color); |
| | | } |
| | | |
| | | .steps-item-active .steps-item-round { |
| | | background-color: var(--red-1); |
| | | color: var(--main-color); |
| | | background-color: var(--main-color); |
| | | color: var(--white); |
| | | } |
| | | |
| | | .steps-item-line {} |
| | | |
| | | .steps-item-hoverLine { |
| | | width: 168rpx; |
| | | border: 1px solid var(--main-color); |
| | | } |
| | | |
| | | .steps-item-line { |
| | | width: 168rpx; |
| | | border: 1px solid #E5E6EB; |
| | | } |
| | | |
| | | .steps-item-active .steps-item-number1 { |
| | | background-color: var(--main-color); |
| | | color: var(--white); |
| | | } |
| | | |
| | | .steps-item-round { |
| | | position: relative; |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | border-radius: 50%; |
| | | color: #646566; |
| | | margin-bottom: 8rpx; |
| | | background-color: #f2f2f2; |
| | | position: relative; |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | border-radius: 50%; |
| | | color: #86909C; |
| | | margin-bottom: 8rpx; |
| | | background-color: #F2F3F5; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .steps-item-round1 { |
| | | position: relative; |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | border-radius: 50%; |
| | | color: #86909C; |
| | | margin-bottom: 8rpx; |
| | | background-color: #e8f3ff; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .steps-item-text { |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | .steps-item-icon { |
| | | position: absolute; |
| | | z-index: 999; |
| | | top: 50%; |
| | | margin-top: -16rpx; |
| | | right: -16rpx; |
| | | color: #cccccc; |
| | | } |
| | | position: absolute; |
| | | z-index: 889; |
| | | top: 50%; |
| | | margin-top: -24rpx; |
| | | right: -88rpx; |
| | | color: #cccccc; |
| | | } |
New file |
| | |
| | | // components/textarea/index.js |
| | | Component({ |
| | | /** |
| | | * 组件的属性列表 |
| | | */ |
| | | properties: { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 组件的初始数据 |
| | | */ |
| | | data: { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 组件的方法列表 |
| | | */ |
| | | methods: { |
| | | |
| | | } |
| | | }) |
New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <block> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 事项概况</text></view> |
| | | <van-field custom-style="padding:0 20rpx;line-height:90rpx" autosize="{{ { maxHeight: 88, minHeight: 88 } }}" bind:change="handleChange" border="{{ false }}" data-key="caseDes" placeholder="请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过" type="textarea" value="{{ submitData.caseDes }}" /> |
| | | </view> |
| | | <view> |
| | | <view class="textarea-foot"> |
| | | <view></view> |
| | | </view> |
| | | <!-- <recording bind:getwords="handleGetWords" bind:onVisible="handleVisibleRecording" data-type="caseDes" /> --> |
| | | </view> |
| | | </block> |
New file |
| | |
| | | /* components/textarea/index.wxss */ |
New file |
| | |
| | | "use strict"; |
| | | var __assign = (this && this.__assign) || function () { |
| | | __assign = Object.assign || function(t) { |
| | | for (var s, i = 1, n = arguments.length; i < n; i++) { |
| | | s = arguments[i]; |
| | | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) |
| | | t[p] = s[p]; |
| | | } |
| | | return t; |
| | | }; |
| | | return __assign.apply(this, arguments); |
| | | }; |
| | | var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { |
| | | if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { |
| | | if (ar || !(i in from)) { |
| | | if (!ar) ar = Array.prototype.slice.call(from, 0, i); |
| | | ar[i] = from[i]; |
| | | } |
| | | } |
| | | return to.concat(ar || Array.prototype.slice.call(from)); |
| | | }; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var component_1 = require("../common/component"); |
| | | var validator_1 = require("../common/validator"); |
| | | var shared_1 = require("../picker/shared"); |
| | | var currentYear = new Date().getFullYear(); |
| | | function isValidDate(date) { |
| | | return (0, validator_1.isDef)(date) && !isNaN(new Date(date).getTime()); |
| | | } |
| | | function range(num, min, max) { |
| | | return Math.min(Math.max(num, min), max); |
| | | } |
| | | function padZero(val) { |
| | | return "00".concat(val).slice(-2); |
| | | } |
| | | function times(n, iteratee) { |
| | | var index = -1; |
| | | var result = Array(n < 0 ? 0 : n); |
| | | while (++index < n) { |
| | | result[index] = iteratee(index); |
| | | } |
| | | return result; |
| | | } |
| | | function getTrueValue(formattedValue) { |
| | | if (formattedValue === undefined) { |
| | | formattedValue = '1'; |
| | | } |
| | | while (isNaN(parseInt(formattedValue, 10))) { |
| | | formattedValue = formattedValue.slice(1); |
| | | } |
| | | return parseInt(formattedValue, 10); |
| | | } |
| | | function getMonthEndDay(year, month) { |
| | | return 32 - new Date(year, month - 1, 32).getDate(); |
| | | } |
| | | var defaultFormatter = function (type, value) { return value; }; |
| | | (0, component_1.VantComponent)({ |
| | | classes: ['active-class', 'toolbar-class', 'column-class'], |
| | | props: __assign(__assign({}, shared_1.pickerProps), { value: { |
| | | type: null, |
| | | observer: 'updateValue', |
| | | }, filter: null, type: { |
| | | type: String, |
| | | value: 'datetime', |
| | | observer: 'updateValue', |
| | | }, showToolbar: { |
| | | type: Boolean, |
| | | value: true, |
| | | }, formatter: { |
| | | type: null, |
| | | value: defaultFormatter, |
| | | }, minDate: { |
| | | type: Number, |
| | | value: new Date(currentYear - 10, 0, 1).getTime(), |
| | | observer: 'updateValue', |
| | | }, maxDate: { |
| | | type: Number, |
| | | value: new Date(currentYear + 10, 11, 31).getTime(), |
| | | observer: 'updateValue', |
| | | }, minHour: { |
| | | type: Number, |
| | | value: 0, |
| | | observer: 'updateValue', |
| | | }, maxHour: { |
| | | type: Number, |
| | | value: 23, |
| | | observer: 'updateValue', |
| | | }, minMinute: { |
| | | type: Number, |
| | | value: 0, |
| | | observer: 'updateValue', |
| | | }, maxMinute: { |
| | | type: Number, |
| | | value: 59, |
| | | observer: 'updateValue', |
| | | } }), |
| | | data: { |
| | | innerValue: Date.now(), |
| | | columns: [], |
| | | }, |
| | | methods: { |
| | | updateValue: function () { |
| | | var _this = this; |
| | | var data = this.data; |
| | | var val = this.correctValue(data.value); |
| | | var isEqual = val === data.innerValue; |
| | | this.updateColumnValue(val).then(function () { |
| | | if (!isEqual) { |
| | | _this.$emit('input', val); |
| | | } |
| | | }); |
| | | }, |
| | | getPicker: function () { |
| | | if (this.picker == null) { |
| | | this.picker = this.selectComponent('.van-datetime-picker'); |
| | | var picker_1 = this.picker; |
| | | var setColumnValues_1 = picker_1.setColumnValues; |
| | | picker_1.setColumnValues = function () { |
| | | var args = []; |
| | | for (var _i = 0; _i < arguments.length; _i++) { |
| | | args[_i] = arguments[_i]; |
| | | } |
| | | return setColumnValues_1.apply(picker_1, __spreadArray(__spreadArray([], args, true), [false], false)); |
| | | }; |
| | | } |
| | | return this.picker; |
| | | }, |
| | | updateColumns: function () { |
| | | var _a = this.data.formatter, formatter = _a === void 0 ? defaultFormatter : _a; |
| | | var results = this.getOriginColumns().map(function (column) { return ({ |
| | | values: column.values.map(function (value) { return formatter(column.type, value); }), |
| | | }); }); |
| | | return this.set({ columns: results }); |
| | | }, |
| | | getOriginColumns: function () { |
| | | var filter = this.data.filter; |
| | | var results = this.getRanges().map(function (_a) { |
| | | var type = _a.type, range = _a.range; |
| | | var values = times(range[1] - range[0] + 1, function (index) { |
| | | var value = range[0] + index; |
| | | return type === 'year' ? "".concat(value) : padZero(value); |
| | | }); |
| | | if (filter) { |
| | | values = filter(type, values); |
| | | } |
| | | return { type: type, values: values }; |
| | | }); |
| | | return results; |
| | | }, |
| | | getRanges: function () { |
| | | var data = this.data; |
| | | if (data.type === 'time') { |
| | | return [ |
| | | { |
| | | type: 'hour', |
| | | range: [data.minHour, data.maxHour], |
| | | }, |
| | | { |
| | | type: 'minute', |
| | | range: [data.minMinute, data.maxMinute], |
| | | }, |
| | | ]; |
| | | } |
| | | var _a = this.getBoundary('max', data.innerValue), maxYear = _a.maxYear, maxDate = _a.maxDate, maxMonth = _a.maxMonth, maxHour = _a.maxHour, maxMinute = _a.maxMinute; |
| | | var _b = this.getBoundary('min', data.innerValue), minYear = _b.minYear, minDate = _b.minDate, minMonth = _b.minMonth, minHour = _b.minHour, minMinute = _b.minMinute; |
| | | var result = [ |
| | | { |
| | | type: 'year', |
| | | range: [minYear, maxYear], |
| | | }, |
| | | { |
| | | type: 'month', |
| | | range: [minMonth, maxMonth], |
| | | }, |
| | | { |
| | | type: 'day', |
| | | range: [minDate, maxDate], |
| | | }, |
| | | { |
| | | type: 'hour', |
| | | range: [minHour, maxHour], |
| | | }, |
| | | { |
| | | type: 'minute', |
| | | range: [minMinute, maxMinute], |
| | | }, |
| | | ]; |
| | | if (data.type === 'date') |
| | | result.splice(3, 2); |
| | | if (data.type === 'year-month') |
| | | result.splice(2, 3); |
| | | return result; |
| | | }, |
| | | correctValue: function (value) { |
| | | var data = this.data; |
| | | // validate value |
| | | var isDateType = data.type !== 'time'; |
| | | if (isDateType && !isValidDate(value)) { |
| | | value = data.minDate; |
| | | } |
| | | else if (!isDateType && !value) { |
| | | var minHour = data.minHour; |
| | | value = "".concat(padZero(minHour), ":00"); |
| | | } |
| | | // time type |
| | | if (!isDateType) { |
| | | var _a = value.split(':'), hour = _a[0], minute = _a[1]; |
| | | hour = padZero(range(hour, data.minHour, data.maxHour)); |
| | | minute = padZero(range(minute, data.minMinute, data.maxMinute)); |
| | | return "".concat(hour, ":").concat(minute); |
| | | } |
| | | // date type |
| | | value = Math.max(value, data.minDate); |
| | | value = Math.min(value, data.maxDate); |
| | | return value; |
| | | }, |
| | | getBoundary: function (type, innerValue) { |
| | | var _a; |
| | | var value = new Date(innerValue); |
| | | var boundary = new Date(this.data["".concat(type, "Date")]); |
| | | var year = boundary.getFullYear(); |
| | | var month = 1; |
| | | var date = 1; |
| | | var hour = 0; |
| | | var minute = 0; |
| | | if (type === 'max') { |
| | | month = 12; |
| | | date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1); |
| | | hour = 23; |
| | | minute = 59; |
| | | } |
| | | if (value.getFullYear() === year) { |
| | | month = boundary.getMonth() + 1; |
| | | if (value.getMonth() + 1 === month) { |
| | | date = boundary.getDate(); |
| | | if (value.getDate() === date) { |
| | | hour = boundary.getHours(); |
| | | if (value.getHours() === hour) { |
| | | minute = boundary.getMinutes(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return _a = {}, |
| | | _a["".concat(type, "Year")] = year, |
| | | _a["".concat(type, "Month")] = month, |
| | | _a["".concat(type, "Date")] = date, |
| | | _a["".concat(type, "Hour")] = hour, |
| | | _a["".concat(type, "Minute")] = minute, |
| | | _a; |
| | | }, |
| | | onCancel: function () { |
| | | this.$emit('cancel'); |
| | | }, |
| | | onConfirm: function () { |
| | | this.$emit('confirm', this.data.innerValue); |
| | | }, |
| | | onChange: function () { |
| | | var _this = this; |
| | | var data = this.data; |
| | | var value; |
| | | var picker = this.getPicker(); |
| | | var originColumns = this.getOriginColumns(); |
| | | if (data.type === 'time') { |
| | | var indexes = picker.getIndexes(); |
| | | value = "".concat(+originColumns[0].values[indexes[0]], ":").concat(+originColumns[1] |
| | | .values[indexes[1]]); |
| | | } |
| | | else { |
| | | var indexes = picker.getIndexes(); |
| | | var values = indexes.map(function (value, index) { return originColumns[index].values[value]; }); |
| | | var year = getTrueValue(values[0]); |
| | | var month = getTrueValue(values[1]); |
| | | var maxDate = getMonthEndDay(year, month); |
| | | var date = getTrueValue(values[2]); |
| | | if (data.type === 'year-month') { |
| | | date = 1; |
| | | } |
| | | date = date > maxDate ? maxDate : date; |
| | | var hour = 0; |
| | | var minute = 0; |
| | | if (data.type === 'datetime') { |
| | | hour = getTrueValue(values[3]); |
| | | minute = getTrueValue(values[4]); |
| | | } |
| | | value = new Date(year, month - 1, date, hour, minute); |
| | | } |
| | | value = this.correctValue(value); |
| | | this.updateColumnValue(value).then(function () { |
| | | _this.$emit('input', value); |
| | | _this.$emit('change', picker); |
| | | }); |
| | | }, |
| | | updateColumnValue: function (value) { |
| | | var _this = this; |
| | | var values = []; |
| | | var type = this.data.type; |
| | | var formatter = this.data.formatter || defaultFormatter; |
| | | var picker = this.getPicker(); |
| | | if (type === 'time') { |
| | | var pair = value.split(':'); |
| | | values = [formatter('hour', pair[0]), formatter('minute', pair[1])]; |
| | | } |
| | | else { |
| | | var date = new Date(value); |
| | | values = [ |
| | | formatter('year', "".concat(date.getFullYear())), |
| | | formatter('month', padZero(date.getMonth() + 1)), |
| | | ]; |
| | | if (type === 'date') { |
| | | values.push(formatter('day', padZero(date.getDate()))); |
| | | } |
| | | if (type === 'datetime') { |
| | | values.push(formatter('day', padZero(date.getDate())), formatter('hour', padZero(date.getHours())), formatter('minute', padZero(date.getMinutes()))); |
| | | } |
| | | } |
| | | return this.set({ innerValue: value }) |
| | | .then(function () { return _this.updateColumns(); }) |
| | | .then(function () { return picker.setValues(values); }); |
| | | }, |
| | | }, |
| | | created: function () { |
| | | var _this = this; |
| | | var innerValue = this.correctValue(this.data.value); |
| | | this.updateColumnValue(innerValue).then(function () { |
| | | _this.$emit('input', innerValue); |
| | | }); |
| | | }, |
| | | }); |
New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | "van-picker": "../picker/index" |
| | | } |
| | | } |
New file |
| | |
| | | <van-picker |
| | | class="van-datetime-picker" |
| | | active-class="active-class" |
| | | toolbar-class="toolbar-class" |
| | | column-class="column-class" |
| | | title="{{ title }}" |
| | | columns="{{ columns }}" |
| | | item-height="{{ itemHeight }}" |
| | | show-toolbar="{{ showToolbar }}" |
| | | visible-item-count="{{ visibleItemCount }}" |
| | | confirm-button-text="{{ confirmButtonText }}" |
| | | cancel-button-text="{{ cancelButtonText }}" |
| | | bind:change="onChange" |
| | | bind:confirm="onConfirm" |
| | | bind:cancel="onCancel" |
| | | /> |
New file |
| | |
| | | @import '../common/index.wxss'; |
New file |
| | |
| | | "use strict"; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var component_1 = require("../common/component"); |
| | | var relation_1 = require("../common/relation"); |
| | | var link_1 = require("../mixins/link"); |
| | | (0, component_1.VantComponent)({ |
| | | relation: (0, relation_1.useParent)('grid'), |
| | | classes: ['content-class', 'icon-class', 'text-class'], |
| | | mixins: [link_1.link], |
| | | props: { |
| | | icon: String, |
| | | iconColor: String, |
| | | iconPrefix: { |
| | | type: String, |
| | | value: 'van-icon', |
| | | }, |
| | | dot: Boolean, |
| | | info: null, |
| | | badge: null, |
| | | text: String, |
| | | useSlot: Boolean, |
| | | }, |
| | | data: { |
| | | viewStyle: '', |
| | | }, |
| | | mounted: function () { |
| | | this.updateStyle(); |
| | | }, |
| | | methods: { |
| | | updateStyle: function () { |
| | | if (!this.parent) { |
| | | return; |
| | | } |
| | | var _a = this.parent, data = _a.data, children = _a.children; |
| | | var columnNum = data.columnNum, border = data.border, square = data.square, gutter = data.gutter, clickable = data.clickable, center = data.center, direction = data.direction, reverse = data.reverse, iconSize = data.iconSize; |
| | | this.setData({ |
| | | center: center, |
| | | border: border, |
| | | square: square, |
| | | gutter: gutter, |
| | | clickable: clickable, |
| | | direction: direction, |
| | | reverse: reverse, |
| | | iconSize: iconSize, |
| | | index: children.indexOf(this), |
| | | columnNum: columnNum, |
| | | }); |
| | | }, |
| | | onClick: function () { |
| | | this.$emit('click'); |
| | | this.jumpLink(); |
| | | }, |
| | | }, |
| | | }); |
New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | "van-icon": "../icon/index" |
| | | } |
| | | } |
New file |
| | |
| | | <wxs src="../wxs/utils.wxs" module="utils" /> |
| | | <wxs src="./index.wxs" module="computed" /> |
| | | |
| | | <view |
| | | class="custom-class {{ utils.bem('grid-item', { square }) }}" |
| | | style="{{ computed.wrapperStyle({ square, gutter, columnNum, index }) }}" |
| | | bindtap="onClick" |
| | | > |
| | | <view |
| | | class="content-class {{ utils.bem('grid-item__content', [direction, { center, square, reverse, clickable, surround: border && gutter }]) }} {{ border ? 'van-hairline--surround' : '' }}" |
| | | style="{{ computed.contentStyle({ square, gutter }) }}" |
| | | > |
| | | <block wx:if="{{ useSlot }}"> |
| | | <slot /> |
| | | </block> |
| | | <block wx:else> |
| | | <view class="van-grid-item__icon icon-class"> |
| | | <van-icon wx:if="{{ icon }}" name="{{ icon }}" color="{{ iconColor }}" class-prefix="{{ iconPrefix }}" dot="{{ dot }}" info="{{ badge || info }}" size="{{ iconSize }}" /> |
| | | <slot wx:else name="icon"></slot> |
| | | </view> |
| | | <view class="van-grid-item__text text-class"> |
| | | <text wx:if="{{ text }}">{{ text }}</text> |
| | | <slot wx:else name="text"></slot> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | </view> |
New file |
| | |
| | | /* eslint-disable */ |
| | | var style = require('../wxs/style.wxs'); |
| | | var addUnit = require('../wxs/add-unit.wxs'); |
| | | |
| | | function wrapperStyle(data) { |
| | | var width = 100 / data.columnNum + '%'; |
| | | |
| | | return style({ |
| | | width: width, |
| | | 'padding-top': data.square ? width : null, |
| | | 'padding-right': addUnit(data.gutter), |
| | | 'margin-top': |
| | | data.index >= data.columnNum && !data.square |
| | | ? addUnit(data.gutter) |
| | | : null, |
| | | }); |
| | | } |
| | | |
| | | function contentStyle(data) { |
| | | return data.square |
| | | ? style({ |
| | | right: addUnit(data.gutter), |
| | | bottom: addUnit(data.gutter), |
| | | height: 'auto', |
| | | }) |
| | | : ''; |
| | | } |
| | | |
| | | module.exports = { |
| | | wrapperStyle: wrapperStyle, |
| | | contentStyle: contentStyle, |
| | | }; |
New file |
| | |
| | | @import '../common/index.wxss';.van-grid-item{box-sizing:border-box;float:left;position:relative}.van-grid-item--square{height:0}.van-grid-item__content{background-color:var(--grid-item-content-background-color,#fff);box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:var(--grid-item-content-padding,16px 8px)}.van-grid-item__content:after{border-width:0 1px 1px 0;z-index:1}.van-grid-item__content--surround:after{border-width:1px}.van-grid-item__content--center{align-items:center;justify-content:center}.van-grid-item__content--square{left:0;position:absolute;right:0;top:0}.van-grid-item__content--horizontal{flex-direction:row}.van-grid-item__content--horizontal .van-grid-item__text{margin:0 0 0 8px}.van-grid-item__content--reverse{flex-direction:column-reverse}.van-grid-item__content--reverse .van-grid-item__text{margin:0 0 8px}.van-grid-item__content--horizontal.van-grid-item__content--reverse{flex-direction:row-reverse}.van-grid-item__content--horizontal.van-grid-item__content--reverse .van-grid-item__text{margin:0 8px 0 0}.van-grid-item__content--clickable:active{background-color:var(--grid-item-content-active-color,#f2f3f5)}.van-grid-item__icon{align-items:center;display:flex;font-size:var(--grid-item-icon-size,26px);height:var(--grid-item-icon-size,26px)}.van-grid-item__text{word-wrap:break-word;color:var(--grid-item-text-color,#646566);font-size:var(--grid-item-text-font-size,12px)}.van-grid-item__icon+.van-grid-item__text{margin-top:8px} |
New file |
| | |
| | | "use strict"; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var component_1 = require("../common/component"); |
| | | var relation_1 = require("../common/relation"); |
| | | (0, component_1.VantComponent)({ |
| | | relation: (0, relation_1.useChildren)('grid-item'), |
| | | props: { |
| | | square: { |
| | | type: Boolean, |
| | | observer: 'updateChildren', |
| | | }, |
| | | gutter: { |
| | | type: null, |
| | | value: 0, |
| | | observer: 'updateChildren', |
| | | }, |
| | | clickable: { |
| | | type: Boolean, |
| | | observer: 'updateChildren', |
| | | }, |
| | | columnNum: { |
| | | type: Number, |
| | | value: 4, |
| | | observer: 'updateChildren', |
| | | }, |
| | | center: { |
| | | type: Boolean, |
| | | value: true, |
| | | observer: 'updateChildren', |
| | | }, |
| | | border: { |
| | | type: Boolean, |
| | | value: true, |
| | | observer: 'updateChildren', |
| | | }, |
| | | direction: { |
| | | type: String, |
| | | observer: 'updateChildren', |
| | | }, |
| | | iconSize: { |
| | | type: String, |
| | | observer: 'updateChildren', |
| | | }, |
| | | reverse: { |
| | | type: Boolean, |
| | | value: false, |
| | | observer: 'updateChildren', |
| | | }, |
| | | }, |
| | | methods: { |
| | | updateChildren: function () { |
| | | this.children.forEach(function (child) { |
| | | child.updateStyle(); |
| | | }); |
| | | }, |
| | | }, |
| | | }); |
New file |
| | |
| | | { |
| | | "component": true |
| | | } |
New file |
| | |
| | | <wxs src="./index.wxs" module="computed" /> |
| | | |
| | | <view |
| | | class="van-grid custom-class {{ border && !gutter ? 'van-hairline--top' : '' }}" |
| | | style="{{ computed.rootStyle({ gutter }) }}" |
| | | > |
| | | <slot /> |
| | | </view> |
New file |
| | |
| | | /* eslint-disable */ |
| | | var style = require('../wxs/style.wxs'); |
| | | var addUnit = require('../wxs/add-unit.wxs'); |
| | | |
| | | function rootStyle(data) { |
| | | return style({ |
| | | 'padding-left': addUnit(data.gutter), |
| | | }); |
| | | } |
| | | |
| | | module.exports = { |
| | | rootStyle: rootStyle, |
| | | }; |
New file |
| | |
| | | @import '../common/index.wxss';.van-grid{box-sizing:border-box;overflow:hidden;position:relative} |
New file |
| | |
| | | "use strict"; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var component_1 = require("../common/component"); |
| | | var relation_1 = require("../common/relation"); |
| | | (0, component_1.VantComponent)({ |
| | | field: true, |
| | | relation: (0, relation_1.useChildren)('radio'), |
| | | props: { |
| | | value: { |
| | | type: null, |
| | | observer: 'updateChildren', |
| | | }, |
| | | direction: String, |
| | | disabled: { |
| | | type: Boolean, |
| | | observer: 'updateChildren', |
| | | }, |
| | | }, |
| | | methods: { |
| | | updateChildren: function () { |
| | | this.children.forEach(function (child) { return child.updateFromParent(); }); |
| | | }, |
| | | }, |
| | | }); |
New file |
| | |
| | | { |
| | | "component": true |
| | | } |
New file |
| | |
| | | <wxs src="../wxs/utils.wxs" module="utils" /> |
| | | |
| | | <view class="{{ utils.bem('radio-group', [direction]) }}"> |
| | | <slot></slot> |
| | | </view> |
New file |
| | |
| | | @import '../common/index.wxss';.van-radio-group--horizontal{display:flex;flex-wrap:wrap} |
New file |
| | |
| | | "use strict"; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var version_1 = require("../common/version"); |
| | | var component_1 = require("../common/component"); |
| | | var relation_1 = require("../common/relation"); |
| | | (0, component_1.VantComponent)({ |
| | | field: true, |
| | | relation: (0, relation_1.useParent)('radio-group', function () { |
| | | this.updateFromParent(); |
| | | }), |
| | | classes: ['icon-class', 'label-class'], |
| | | props: { |
| | | name: null, |
| | | value: null, |
| | | disabled: Boolean, |
| | | useIconSlot: Boolean, |
| | | checkedColor: String, |
| | | labelPosition: { |
| | | type: String, |
| | | value: 'right', |
| | | }, |
| | | labelDisabled: Boolean, |
| | | shape: { |
| | | type: String, |
| | | value: 'round', |
| | | }, |
| | | iconSize: { |
| | | type: null, |
| | | value: 20, |
| | | }, |
| | | }, |
| | | data: { |
| | | direction: '', |
| | | parentDisabled: false, |
| | | }, |
| | | methods: { |
| | | updateFromParent: function () { |
| | | if (!this.parent) { |
| | | return; |
| | | } |
| | | var _a = this.parent.data, value = _a.value, parentDisabled = _a.disabled, direction = _a.direction; |
| | | this.setData({ |
| | | value: value, |
| | | direction: direction, |
| | | parentDisabled: parentDisabled, |
| | | }); |
| | | }, |
| | | emitChange: function (value) { |
| | | var instance = this.parent || this; |
| | | instance.$emit('input', value); |
| | | instance.$emit('change', value); |
| | | if ((0, version_1.canIUseModel)()) { |
| | | instance.setData({ value: value }); |
| | | } |
| | | }, |
| | | onChange: function () { |
| | | if (!this.data.disabled && !this.data.parentDisabled) { |
| | | this.emitChange(this.data.name); |
| | | } |
| | | }, |
| | | onClickLabel: function () { |
| | | var _a = this.data, disabled = _a.disabled, parentDisabled = _a.parentDisabled, labelDisabled = _a.labelDisabled, name = _a.name; |
| | | if (!(disabled || parentDisabled) && !labelDisabled) { |
| | | this.emitChange(name); |
| | | } |
| | | }, |
| | | }, |
| | | }); |
New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | "van-icon": "../icon/index" |
| | | } |
| | | } |
New file |
| | |
| | | <wxs src="../wxs/utils.wxs" module="utils" /> |
| | | <wxs src="./index.wxs" module="computed" /> |
| | | |
| | | <view class="{{ utils.bem('radio', [direction]) }} custom-class"> |
| | | <view |
| | | wx:if="{{ labelPosition === 'left' }}" |
| | | class="{{ utils.bem('radio__label', [labelPosition, { disabled: disabled || parentDisabled }]) }} label-class" |
| | | bindtap="onClickLabel" |
| | | > |
| | | <slot /> |
| | | </view> |
| | | <view class="van-radio__icon-wrap" style="font-size: {{ utils.addUnit(iconSize) }}" bindtap="onChange"> |
| | | <slot wx:if="{{ useIconSlot }}" name="icon" /> |
| | | <van-icon |
| | | wx:else |
| | | name="success" |
| | | class="{{ utils.bem('radio__icon', [shape, { disabled: disabled || parentDisabled, checked: value === name }]) }}" |
| | | style="{{ computed.iconStyle({ iconSize, checkedColor, disabled, parentDisabled, value, name }) }}" |
| | | custom-class="icon-class" |
| | | custom-style="{{ computed.iconCustomStyle({ iconSize }) }}" |
| | | /> |
| | | </view> |
| | | <view |
| | | wx:if="{{ labelPosition === 'right' }}" |
| | | class="label-class {{ utils.bem('radio__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}" |
| | | bindtap="onClickLabel" |
| | | > |
| | | <slot /> |
| | | </view> |
| | | </view> |
New file |
| | |
| | | /* eslint-disable */ |
| | | var style = require('../wxs/style.wxs'); |
| | | var addUnit = require('../wxs/add-unit.wxs'); |
| | | |
| | | function iconStyle(data) { |
| | | var styles = { |
| | | 'font-size': addUnit(data.iconSize), |
| | | }; |
| | | |
| | | if ( |
| | | data.checkedColor && |
| | | !(data.disabled || data.parentDisabled) && |
| | | data.value === data.name |
| | | ) { |
| | | styles['border-color'] = data.checkedColor; |
| | | styles['background-color'] = data.checkedColor; |
| | | } |
| | | |
| | | return style(styles); |
| | | } |
| | | |
| | | function iconCustomStyle(data) { |
| | | return style({ |
| | | 'line-height': addUnit(data.iconSize), |
| | | 'font-size': '.8em', |
| | | display: 'block', |
| | | }); |
| | | } |
| | | |
| | | module.exports = { |
| | | iconStyle: iconStyle, |
| | | iconCustomStyle: iconCustomStyle, |
| | | }; |
New file |
| | |
| | | @import '../common/index.wxss';.van-radio{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-radio__icon-wrap{flex:none}.van-radio--horizontal{margin-right:var(--padding-sm,12px)}.van-radio__icon{align-items:center;border:1px solid var(--radio-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--radio-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--radio-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-radio__icon--round{border-radius:100%}.van-radio__icon--checked{background-color:var(--radio-checked-icon-color,#1989fa);border-color:var(--radio-checked-icon-color,#1989fa);color:#fff}.van-radio__icon--disabled{background-color:var(--radio-disabled-background-color,#ebedf0);border-color:var(--radio-disabled-icon-color,#c8c9cc)}.van-radio__icon--disabled.van-radio__icon--checked{color:var(--radio-disabled-icon-color,#c8c9cc)}.van-radio__label{word-wrap:break-word;color:var(--radio-label-color,#323233);line-height:var(--radio-size,20px);padding-left:var(--radio-label-margin,10px)}.van-radio__label--left{float:left;margin:0 var(--radio-label-margin,10px) 0 0}.van-radio__label--disabled{color:var(--radio-disabled-label-color,#c8c9cc)}.van-radio__label:empty{margin:0} |
| | |
| | | import { getAllRect } from '../common/utils'; |
| | | import { VantComponent } from '../common/component'; |
| | | import { canIUseModel } from '../common/version'; |
| | | VantComponent({ |
| | | "use strict"; |
| | | var __assign = (this && this.__assign) || function () { |
| | | __assign = Object.assign || function(t) { |
| | | for (var s, i = 1, n = arguments.length; i < n; i++) { |
| | | s = arguments[i]; |
| | | for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) |
| | | t[p] = s[p]; |
| | | } |
| | | return t; |
| | | }; |
| | | return __assign.apply(this, arguments); |
| | | }; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var utils_1 = require("../common/utils"); |
| | | var component_1 = require("../common/component"); |
| | | var version_1 = require("../common/version"); |
| | | (0, component_1.VantComponent)({ |
| | | field: true, |
| | | classes: ['icon-class'], |
| | | props: { |
| | | value: { |
| | | type: Number, |
| | | observer(value) { |
| | | observer: function (value) { |
| | | if (value !== this.data.innerValue) { |
| | | this.setData({ innerValue: value }); |
| | | } |
| | |
| | | count: { |
| | | type: Number, |
| | | value: 5, |
| | | observer(value) { |
| | | observer: function (value) { |
| | | this.setData({ innerCountArray: Array.from({ length: value }) }); |
| | | }, |
| | | }, |
| | |
| | | innerCountArray: Array.from({ length: 5 }), |
| | | }, |
| | | methods: { |
| | | onSelect(event) { |
| | | const { data } = this; |
| | | const { score } = event.currentTarget.dataset; |
| | | onSelect: function (event) { |
| | | var _this = this; |
| | | var data = this.data; |
| | | var score = event.currentTarget.dataset.score; |
| | | if (!data.disabled && !data.readonly) { |
| | | this.setData({ innerValue: score + 1 }); |
| | | if (canIUseModel()) { |
| | | if ((0, version_1.canIUseModel)()) { |
| | | this.setData({ value: score + 1 }); |
| | | } |
| | | wx.nextTick(() => { |
| | | this.$emit('input', score + 1); |
| | | this.$emit('change', score + 1); |
| | | wx.nextTick(function () { |
| | | _this.$emit('input', score + 1); |
| | | _this.$emit('change', score + 1); |
| | | }); |
| | | } |
| | | }, |
| | | onTouchMove(event) { |
| | | const { touchable } = this.data; |
| | | onTouchMove: function (event) { |
| | | var _this = this; |
| | | var touchable = this.data.touchable; |
| | | if (!touchable) |
| | | return; |
| | | const { clientX } = event.touches[0]; |
| | | getAllRect(this, '.van-rate__icon').then((list) => { |
| | | const target = list |
| | | .sort((cur, next) => cur.dataset.score - next.dataset.score) |
| | | .find((item) => clientX >= item.left && clientX <= item.right); |
| | | var clientX = event.touches[0].clientX; |
| | | (0, utils_1.getAllRect)(this, '.van-rate__icon').then(function (list) { |
| | | var target = list |
| | | .sort(function (cur, next) { return cur.dataset.score - next.dataset.score; }) |
| | | .find(function (item) { return clientX >= item.left && clientX <= item.right; }); |
| | | if (target != null) { |
| | | this.onSelect(Object.assign(Object.assign({}, event), { currentTarget: target })); |
| | | _this.onSelect(__assign(__assign({}, event), { currentTarget: target })); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | @import '../common/index.wxss';.van-rate{display:inline-flex;-webkit-user-select:none;user-select:none}.van-rate__item{padding:0 var(--rate-horizontal-padding,2px);position:relative}.van-rate__item:not(:last-child){padding-right:var(--rate-icon-gutter,4px)}.van-rate__icon{color:var(--rate-icon-void-color,#c8c9cc);display:block;font-size:var(--rate-icon-size,20px);height:100%}.van-rate__icon--half{left:var(--rate-horizontal-padding,2px);overflow:hidden;position:absolute;top:0;width:.5em}.van-rate__icon--full,.van-rate__icon--half{color:var(--rate-icon-full-color,#ee0a24)}.van-rate__icon--disabled{color:var(--rate-icon-disabled-color,#c8c9cc)} |
| | | @import '../common/index.wxss';.van-rate{display:inline-flex;-webkit-user-select:none;user-select:none}.van-rate__item{padding:0 var(--rate-horizontal-padding,2px);position:relative}.van-rate__item:not(:last-child){padding-right:var(--rate-icon-gutter,4px)}.van-rate__icon{color:var(--rate-icon-void-color,#c8c9cc);display:block;font-size:var(--rate-icon-size,20px);height:1em}.van-rate__icon--half{left:var(--rate-horizontal-padding,2px);overflow:hidden;position:absolute;top:0;width:.5em}.van-rate__icon--full,.van-rate__icon--half{color:var(--rate-icon-full-color,#ee0a24)}.van-rate__icon--disabled{color:var(--rate-icon-disabled-color,#c8c9cc)} |
New file |
| | |
| | | "use strict"; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var component_1 = require("../common/component"); |
| | | var relation_1 = require("../common/relation"); |
| | | (0, component_1.VantComponent)({ |
| | | classes: ['active-class', 'disabled-class'], |
| | | relation: (0, relation_1.useParent)('sidebar'), |
| | | props: { |
| | | dot: Boolean, |
| | | badge: null, |
| | | info: null, |
| | | title: String, |
| | | disabled: Boolean, |
| | | }, |
| | | methods: { |
| | | onClick: function () { |
| | | var _this = this; |
| | | var parent = this.parent; |
| | | if (!parent || this.data.disabled) { |
| | | return; |
| | | } |
| | | var index = parent.children.indexOf(this); |
| | | parent.setActive(index).then(function () { |
| | | _this.$emit('click', index); |
| | | parent.$emit('change', index); |
| | | }); |
| | | }, |
| | | setActive: function (selected) { |
| | | return this.setData({ selected: selected }); |
| | | }, |
| | | }, |
| | | }); |
New file |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | "van-info": "../info/index" |
| | | } |
| | | } |
New file |
| | |
| | | <wxs src="../wxs/utils.wxs" module="utils" /> |
| | | |
| | | <view |
| | | class="{{ utils.bem('sidebar-item', { selected, disabled }) }} {{ selected ? 'active-class' : '' }} {{ disabled ? 'disabled-class' : '' }} custom-class" |
| | | hover-class="van-sidebar-item--hover" |
| | | hover-stay-time="70" |
| | | bind:tap="onClick" |
| | | > |
| | | <view class="van-sidebar-item__text"> |
| | | <van-info |
| | | wx:if="{{ badge != null || info !== null || dot }}" |
| | | dot="{{ dot }}" |
| | | info="{{ badge != null ? badge : info }}" |
| | | /> |
| | | <view wx:if="{{ title }}">{{ title }}</view> |
| | | <slot wx:else name="title" /> |
| | | </view> |
| | | </view> |
New file |
| | |
| | | @import '../common/index.wxss';.van-sidebar-item{background-color:var(--sidebar-background-color,#f7f8fa);border-left:3px solid transparent;box-sizing:border-box;color:var(--sidebar-text-color,#323233);display:block;font-size:var(--sidebar-font-size,14px);line-height:var(--sidebar-line-height,20px);overflow:hidden;padding:var(--sidebar-padding,20px 12px 20px 8px);-webkit-user-select:none;user-select:none}.van-sidebar-item__text{display:inline-block;position:relative;word-break:break-all}.van-sidebar-item--hover:not(.van-sidebar-item--disabled){background-color:var(--sidebar-active-color,#f2f3f5)}.van-sidebar-item:after{border-bottom-width:1px}.van-sidebar-item--selected{border-color:var(--sidebar-selected-border-color,#ee0a24);color:var(--sidebar-selected-text-color,#323233);font-weight:var(--sidebar-selected-font-weight,500)}.van-sidebar-item--selected:after{border-right-width:1px}.van-sidebar-item--selected,.van-sidebar-item--selected.van-sidebar-item--hover{background-color:var(--sidebar-selected-background-color,#fff)}.van-sidebar-item--disabled{color:var(--sidebar-disabled-text-color,#c8c9cc)} |
New file |
| | |
| | | "use strict"; |
| | | Object.defineProperty(exports, "__esModule", { value: true }); |
| | | var component_1 = require("../common/component"); |
| | | var relation_1 = require("../common/relation"); |
| | | (0, component_1.VantComponent)({ |
| | | relation: (0, relation_1.useChildren)('sidebar-item', function () { |
| | | this.setActive(this.data.activeKey); |
| | | }), |
| | | props: { |
| | | activeKey: { |
| | | type: Number, |
| | | value: 0, |
| | | observer: 'setActive', |
| | | }, |
| | | }, |
| | | beforeCreate: function () { |
| | | this.currentActive = -1; |
| | | }, |
| | | methods: { |
| | | setActive: function (activeKey) { |
| | | var _a = this, children = _a.children, currentActive = _a.currentActive; |
| | | if (!children.length) { |
| | | return Promise.resolve(); |
| | | } |
| | | this.currentActive = activeKey; |
| | | var stack = []; |
| | | if (currentActive !== activeKey && children[currentActive]) { |
| | | stack.push(children[currentActive].setActive(false)); |
| | | } |
| | | if (children[activeKey]) { |
| | | stack.push(children[activeKey].setActive(true)); |
| | | } |
| | | return Promise.all(stack); |
| | | }, |
| | | }, |
| | | }); |
New file |
| | |
| | | { |
| | | "component": true |
| | | } |
New file |
| | |
| | | <view class="van-sidebar custom-class"> |
| | | <slot /> |
| | | </view> |
New file |
| | |
| | | @import '../common/index.wxss';.van-sidebar{width:var(--sidebar-width,80px)} |
New file |
| | |
| | | // pages/addAddress/index.js |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | } |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "选择纠纷发生地", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/addAddress/index.wxml--> |
| | | <text>pages/addAddress/index.wxml</text> |
New file |
| | |
| | | /* pages/addAddress/index.wxss */ |
New file |
| | |
| | | // pages/addPerson/index.js |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | import Toast from '../../components/vant/toast/toast'; |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | select: {}, // 下拉框数据 |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | popup: { |
| | | formtype: '', |
| | | index: 0, |
| | | }, |
| | | personTypes: [{ |
| | | title: '自然人', |
| | | imgUrl: $$.url.img + 'person-types_1.png', |
| | | imgUrlActive: $$.url.img + 'person-types_1_active.png', |
| | | }, { |
| | | title: '法人', |
| | | imgUrl: $$.url.img + 'person-types_2.png', |
| | | imgUrlActive: $$.url.img + 'person-types_2_active.png', |
| | | }, { |
| | | title: '非法人组织', |
| | | imgUrl: $$.url.img + 'person-types_3.png', |
| | | imgUrlActive: $$.url.img + 'person-types_3_active.png', |
| | | }], |
| | | personTypesActive: 0, // 人员类型切换 |
| | | perType: '', |
| | | formData: { |
| | | trueName: '', |
| | | mobile: '', |
| | | certiType: '', |
| | | certiTypeName: '', |
| | | certiNo: '', |
| | | addr: '', |
| | | placeAddr: '', |
| | | workUnit: '', |
| | | nation: '', |
| | | nationName: '', |
| | | sex: '09_00003-1', |
| | | sexName: '男', |
| | | }, //表单存储对象 |
| | | }, |
| | | |
| | | // 保存 |
| | | handleNext(e) { |
| | | let personTypesActive = this.data.personTypesActive; |
| | | let data = { |
| | | ...this.data.formData, |
| | | perType: this.data.perType, |
| | | perTypeName: this.data.perTypeName, |
| | | perClass: personTypesActive === 0 ? '09_01001-1' : personTypesActive === 1 ? '09_01001-2' : personTypesActive === 2 ? '09_01001-3' : "", |
| | | perClassName: personTypesActive === 0 ? '自然人' : personTypesActive === 1 ? '法人' : personTypesActive === 2 ? '非法人组织' : "", |
| | | } |
| | | console.log('data', data); |
| | | // 获取当前页面栈 |
| | | var pages = getCurrentPages(); |
| | | |
| | | // 上一个页面 |
| | | var prevPage = pages[pages.length - 2]; |
| | | // 直接设置数据对象到上一页面的data中 |
| | | prevPage.setData({ |
| | | oneData: data, |
| | | editIndex: this.data.editIndex || false, |
| | | }); |
| | | |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }) |
| | | |
| | | }, |
| | | |
| | | // 选择法人或非法人组织 |
| | | selectUnit(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | // 法人信息 |
| | | if (key === 'person') { |
| | | |
| | | } |
| | | }, |
| | | |
| | | // 获取手机号码 |
| | | async _handleGetPhoneNumber(e) { |
| | | let that = this; |
| | | let phone = await that.selectComponent('#common-page').handleGetPhoneNumber(e.detail.code); |
| | | that.data.formData.mobile = phone; |
| | | that.setData({ |
| | | formData: that.data.formData |
| | | }); |
| | | }, |
| | | |
| | | // 身份证ocr |
| | | handleOCR(e) { |
| | | let that = this; |
| | | wx.chooseMedia({ |
| | | count: 1, |
| | | mediaType: ['image'], |
| | | success(res2) { |
| | | const tempFiles = res2.tempFiles[0]; |
| | | $$.showLoading(); |
| | | wx.uploadFile({ |
| | | url: `${$$.baseUrl}${$$.url.sys}/api/wechat/fileInfo/wecatRecognition`, |
| | | filePath: tempFiles.tempFilePath, |
| | | name: 'file', |
| | | header: { |
| | | Authorization: app.globalData.token |
| | | }, |
| | | complete(res3) { |
| | | $$.hideLoading(); |
| | | if (res3.errMsg === 'uploadFile:ok') { |
| | | let { |
| | | code, |
| | | data |
| | | } = JSON.parse(res3.data); |
| | | if (code == -1) { |
| | | $$.errorModal({ |
| | | content: '识别失败' |
| | | }); |
| | | return; |
| | | } |
| | | that.data.formData.certiNo = data?.ocrResult.certiNo; |
| | | that.data.formData.certiType = data?.ocrResult.certiType; |
| | | that.data.formData.certiTypeName = data?.ocrResult.certiTypeName; |
| | | that.data.formData.trueName = data?.ocrResult.trueName; |
| | | that.data.formData.placeAddr = data?.ocrResult.placeAddr; |
| | | that.data.formData.sex = data?.ocrResult.sex; |
| | | that.data.formData.sexName = data?.ocrResult.sexName; |
| | | that.data.formData.nation = data?.ocrResult.nation; |
| | | that.data.formData.nationName = data?.ocrResult.nationName; |
| | | that.setData({ |
| | | formData: that.data.formData |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 表单修改 |
| | | handleChange(e) { |
| | | let key = e.currentTarget.dataset.key, |
| | | value = e.detail; |
| | | if (key === 'sex') { |
| | | this.data.formData[key] = value; |
| | | this.data.formData[key + 'Name'] = value === '09_00003-2' ? '女' : value === '09_00003-1' ? '男' : ''; |
| | | } else { |
| | | this.data.formData[key] = value; |
| | | } |
| | | this.setData({ |
| | | formData: this.data.formData |
| | | }); |
| | | }, |
| | | |
| | | |
| | | // 人员类型切换 |
| | | _handleSelectData(e) { |
| | | let index = e.currentTarget.dataset.index; |
| | | this.setData({ |
| | | personTypesActive: index |
| | | }) |
| | | }, |
| | | |
| | | // 下拉框选择开启 |
| | | handleShowPopup(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | let selectData = []; |
| | | let selectOption = this.select[type]; |
| | | selectData = [{ |
| | | values: selectOption, |
| | | defaultIndex: 0 |
| | | }]; |
| | | this.setData({ |
| | | popup: { |
| | | formtype: e.currentTarget.dataset.key, |
| | | index: e.currentTarget.dataset.index, |
| | | visible: true, |
| | | title: e.currentTarget.dataset.title, |
| | | type: type, |
| | | selectData: selectData, |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 关闭下拉框选择 |
| | | handleClosePopup() { |
| | | this.data.popup.visible = false; |
| | | this.setData({ |
| | | popup: this.data.popup |
| | | }); |
| | | }, |
| | | |
| | | // 下拉框选择确认 |
| | | handleConfirmPicker({ |
| | | detail |
| | | }) { |
| | | let formtype = this.data.popup.formtype; |
| | | let value = detail.detail.value, |
| | | arr = []; |
| | | this.data.popup.visible = false; |
| | | console.log('value', value[0].value); |
| | | console.log('formtype', formtype); |
| | | this.data.formData[formtype] = value[0].value; |
| | | this.data.formData[formtype + 'Name'] = value[0].label; |
| | | this.setData({ |
| | | popup: this.data.popup, |
| | | formData: this.data.formData |
| | | }); |
| | | }, |
| | | |
| | | // 请求下拉框资源 |
| | | async getSelectOptionData() { |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.assets}selectOption.json`, |
| | | type: 'get' |
| | | }); |
| | | if (res) { |
| | | this.select.cardType = res.data.cardType || []; |
| | | this.select.nation = res.data.nation || []; |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | let { |
| | | perType, |
| | | perTypeName, |
| | | data, |
| | | index |
| | | } = options; |
| | | if (data) { |
| | | data = JSON.parse(data); |
| | | console.log('data', data); |
| | | wx.setNavigationBarTitle({ |
| | | title: "修改" + data.perTypeName |
| | | }) |
| | | this.setData({ |
| | | editIndex: index, |
| | | formData: data, |
| | | perType: data.perType, |
| | | perTypeName: data.perTypeName, |
| | | personTypesActive: data.perClass === '09_01001-1' ? 0 : data.perClass === '09_01001-2' ? 1 : data.perClass === '09_01001-3' ? 2 : 0, |
| | | }) |
| | | } else { |
| | | wx.setNavigationBarTitle({ |
| | | title: "添加" + perTypeName |
| | | }) |
| | | this.setData({ |
| | | perType, |
| | | perTypeName |
| | | }) |
| | | } |
| | | this.getSelectOptionData(); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | } |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "usingComponents": { |
| | | } |
| | | } |
New file |
| | |
| | | <!--pages/addPerson/index.wxml--> |
| | | |
| | | <common-page id="common-page" bind:onCancelPicker="handleClosePopup" bind:onChangePicker="handleChangeColumns" bind:onClosePopup="handleClosePopup" bind:onConfirmPicker="handleConfirmPicker" popup="{{ popup }}"> |
| | | <view class="addPerson-main"> |
| | | <!-- 人员类型切换 --> |
| | | <view class="person-type-select"> |
| | | <view class="person-type-select-person">人员类型</view> |
| | | <view class="personTypes"> |
| | | <view bindtap="_handleSelectData" data-index="{{index}}" class="personTypes-item {{ index === personTypesActive && 'personTypes-item-active' }}" wx:for="{{ personTypes }}" wx:key="index"> |
| | | <view class="personTypes-item-round" wx:if="{{ index === personTypesActive }}"> |
| | | <image src="{{item.imgUrlActive}}" mode="" /> |
| | | </view> |
| | | <view class="personTypes-item-round" wx:else> |
| | | <image src="{{item.imgUrl}}" mode="" /> |
| | | </view> |
| | | <view class="personTypes-item-text">{{ item.title }}</view> |
| | | <view wx:if="{{ index === personTypesActive }}" class="personTypes-item-sueecss"> |
| | | <van-icon size="20" name="checked" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 表单-自然人 --> |
| | | <view wx:if="{{personTypesActive===0}}" class="popupMsg-form"> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"> |
| | | <text><text class="cell-required">*</text> 姓名</text> |
| | | <view bindtap="handleOCR" class="cell-idCard"> |
| | | <image src="{{imgUrl}}card.png" mode="" /> 身份证识别 |
| | | </view> |
| | | </view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="trueName" input-align="right" placeholder="请输入" value="{{ formData.trueName || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"> |
| | | <text><text class="cell-required">*</text> 联系方式</text> |
| | | <van-button open-type="getPhoneNumber" bindgetphonenumber="_handleGetPhoneNumber" style="font-weight: 400;" class="cell-phone">本机号码</van-button> |
| | | </view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="mobile" input-align="right" placeholder="请填写手机号码" value="{{ formData.mobile || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view bindtap="handleShowPopup" class="cell cell-item" data-title="证件类型" data-key="certiType" data-type="cardType"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 证件类型</text></view> |
| | | <view class="{{ !formData.certiTypeName ? 'cell-placeholder' : '' }} cell-select">{{ formData.certiTypeName ? formData.certiTypeName : '未选择' }}</view> |
| | | <view class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"> |
| | | <text><text class="cell-required">*</text> 证件号码</text> |
| | | </view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="certiNo" input-align="right" placeholder="请填写完整证件号码" value="{{ formData.certiNo || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view style="height: 16rpx;"></view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title1">联系地址</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="addr" input-align="right" placeholder="请填写详细地址" value="{{ formData.addr || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title1">户籍地址</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="placeAddr" input-align="right" placeholder="请填写户籍地址" value="{{ formData.placeAddr || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title1">工作单位</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="workUnit" input-align="right" placeholder="请填写单位全名" value="{{ formData.workUnit || '' }}" /> |
| | | </view> |
| | | </view> |
| | | |
| | | <view bindtap="handleShowPopup" class="cell cell-item" data-title="民族" data-key="nation" data-type="nation"> |
| | | <view class="cell-title1">民族</view> |
| | | <view class="{{ !formData.nationName ? 'cell-placeholder' : '' }} cell-select">{{ formData.nationName ? formData.nationName : '未选择' }}</view> |
| | | <view class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell cell-item"> |
| | | <view style="flex:1" class="cell-title1">性别</view> |
| | | <view class="cell-radio"> |
| | | <van-radio-group bind:change="handleChange" data-key="sex" value="{{ formData.sex }}"> |
| | | <view class="cell-radio"> |
| | | <view> |
| | | <van-radio name="09_00003-2">女</van-radio> |
| | | </view> |
| | | <view> |
| | | <van-radio name="09_00003-1">男</van-radio> |
| | | </view> |
| | | </view> |
| | | </van-radio-group> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 法人 --> |
| | | <view wx:if="{{personTypesActive===1}}" class="popupMsg-form"> |
| | | <view bindtap="selectUnit" data-type="person" class="cell cell-item" data-title="企业信息"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 企业信息</text></view> |
| | | <view class="{{ !formData.certiTypeName ? 'cell-placeholder' : '' }} cell-select">{{ formData.certiTypeName ? formData.certiTypeName : '选择' }}</view> |
| | | <view class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 非法人组织 --> |
| | | <view wx:if="{{personTypesActive===2}}" class="popupMsg-form"> |
| | | <view bindtap="selectUnit" data-type="units" class="cell cell-item" data-title="机构信息"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 机构信息</text></view> |
| | | <view class="{{ !formData.certiTypeName ? 'cell-placeholder' : '' }} cell-select">{{ formData.certiTypeName ? formData.certiTypeName : '选择' }}</view> |
| | | <view class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 保存 --> |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="flex: 1;"> |
| | | <van-button bind:click="handleNext" block data-type="next" type="primary">保存</van-button> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | </common-page> |
New file |
| | |
| | | /* pages/addPerson/index.wxss */ |
| | | @import '../../styles/public_components.wxss'; |
| | | |
| | | .submitButton { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | display: flex; |
| | | padding: 32rpx var(--padding-my); |
| | | background-color: #fff; |
| | | z-index: 99; |
| | | } |
| | | |
| | | .cell-item { |
| | | padding: 24rpx 32rpx 24rpx 12rpx; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .cell-item-select {} |
| | | |
| | | .cell-idCard { |
| | | color: var(--main-color); |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .cell-phone .van-button { |
| | | color: var(--main-color); |
| | | border: none !important; |
| | | padding: 0 !important; |
| | | } |
| | | |
| | | .cell-idCard image { |
| | | width: 34rpx; |
| | | height: 32rpx; |
| | | margin-right: 8rpx; |
| | | } |
| | | |
| | | .cell-title { |
| | | margin-bottom: 8rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .cell-radio { |
| | | display: flex; |
| | | gap: 27rpx; |
| | | } |
| | | |
| | | .cell-title1 { |
| | | font-weight: 600; |
| | | font-size: 30rpx; |
| | | line-height: 46rpx; |
| | | padding-left: 20rpx; |
| | | } |
| | | |
| | | .cell-select { |
| | | padding: 0 20rpx; |
| | | } |
| | | |
| | | .cell-required { |
| | | color: #d1021c; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .cell-item .van-field__control--right { |
| | | text-align: left |
| | | } |
| | | |
| | | .popupMsg-form { |
| | | margin-top: 16rpx; |
| | | flex: 1; |
| | | margin-bottom: 162rpx; |
| | | } |
| | | |
| | | .person-type-select { |
| | | background-color: #fff; |
| | | |
| | | } |
| | | |
| | | .person-type-select-person { |
| | | padding: 24rpx 32rpx 16rpx; |
| | | } |
| | | |
| | | /* components/personTypes/index.wxss */ |
| | | .personTypes { |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: #ffffff; |
| | | gap: 32rpx; |
| | | padding: 0 32rpx 32rpx; |
| | | } |
| | | |
| | | .personTypes-item { |
| | | position: relative; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | color: rgba(23, 26, 29, 0.40); |
| | | border: 1px solid #E5E6EB; |
| | | border-radius: 12rpx; |
| | | padding: 18rpx 0 10rpx; |
| | | position: relative; |
| | | } |
| | | |
| | | .personTypes-item-active, |
| | | .personTypes-item-active .personTypes-item-icon { |
| | | color: var(--main-color); |
| | | border: 1px solid #1a6fb8; |
| | | } |
| | | |
| | | |
| | | |
| | | .personTypes-item-line {} |
| | | |
| | | .personTypes-item-hoverLine { |
| | | width: 168rpx; |
| | | border: 1px solid var(--main-color); |
| | | } |
| | | |
| | | .personTypes-item-line { |
| | | width: 168rpx; |
| | | border: 1px solid #E5E6EB; |
| | | } |
| | | |
| | | .personTypes-item-active .personTypes-item-number1 { |
| | | background-color: var(--main-color); |
| | | color: var(--white); |
| | | } |
| | | |
| | | .personTypes-item-round { |
| | | position: relative; |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | color: #86909C; |
| | | margin-bottom: 8rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .personTypes-item-round image { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .personTypes-item-sueecss { |
| | | position: absolute; |
| | | right: 10rpx; |
| | | top: 10rpx; |
| | | } |
| | | |
| | | .personTypes-item-icon { |
| | | position: absolute; |
| | | z-index: 889; |
| | | top: 50%; |
| | | margin-top: -24rpx; |
| | | right: -88rpx; |
| | | color: #cccccc; |
| | | } |
New file |
| | |
| | | // pages/caseType/index.js |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | typeList: [ |
| | | [{ |
| | | title: '邻里纠纷', |
| | | value: '24_000011-1', |
| | | imgUrl: 'caseType-1-1.png' |
| | | }, { |
| | | title: '拖欠、克扣工资', |
| | | value: '24_000011-3', |
| | | imgUrl: 'caseType-1-5.png' |
| | | }, { |
| | | title: '门诊及住院待遇', |
| | | value: '24_000011-4', |
| | | imgUrl: 'caseType-1-10.png' |
| | | }, { |
| | | title: '公共设施', |
| | | imgUrl: 'caseType-1-4.png' |
| | | }, { |
| | | title: '施工问题', |
| | | imgUrl: 'caseType-1-2.png' |
| | | }, { |
| | | title: '违章建筑', |
| | | imgUrl: 'caseType-1-6.png' |
| | | }, { |
| | | title: '港澳青年来穗服务', |
| | | imgUrl: 'caseType-1-7.png' |
| | | }, { |
| | | title: '乱摆卖、垃圾清理...', |
| | | imgUrl: 'caseType-1-8.png' |
| | | }, { |
| | | title: '噪声、气味、污水...', |
| | | imgUrl: 'caseType-1-9.png' |
| | | }, { |
| | | title: '车辆乱停放', |
| | | imgUrl: 'caseType-1-14.png' |
| | | }, { |
| | | title: '出租车、公交车站...', |
| | | imgUrl: 'caseType-1-11.png' |
| | | }, { |
| | | title: '电动车违规问题', |
| | | imgUrl: 'caseType-1-12.png' |
| | | }, { |
| | | title: '教培机构投诉', |
| | | imgUrl: 'caseType-1-13.png' |
| | | }, { |
| | | title: '物业/业委会管理', |
| | | imgUrl: 'caseType-1-3.png' |
| | | }] |
| | | ], |
| | | activeKey: '0' |
| | | }, |
| | | |
| | | |
| | | onClick(e) { |
| | | let item = e.currentTarget.dataset.item; |
| | | console.log(item); |
| | | // 获取当前页面栈 |
| | | var pages = getCurrentPages(); |
| | | // 上一个页面 |
| | | var prevPage = pages[pages.length - 2]; |
| | | // 直接设置数据对象到上一页面的data中 |
| | | prevPage.setData({ |
| | | twoData: item |
| | | }); |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | |
| | | }, |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "选择纠纷类型", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/caseType/index.wxml--> |
| | | <view class="ssimList"> |
| | | <!-- 搜索 --> |
| | | <view class="card"> |
| | | <view class="cell"> |
| | | <view class="cell-right"> |
| | | <view style="display: flex;gap:20rpx"> |
| | | <van-icon name="search" /> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0;background-color:#f2f3f5" data-key="keyword" placeholder="输入关键词查找纠纷类型" value="{{ search.keyword }}" /> |
| | | </view> |
| | | <view style="display: flex;"> |
| | | <view style="color:#E5E6EB;margin-right: 16rpx;">|</view> |
| | | <view bindtap="searchButton" class="public-color">查询</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 主体 --> |
| | | <view class='caseType-main'> |
| | | <view class="sidebar"> |
| | | <van-sidebar active-key="{{ activeKey }}"> |
| | | <van-sidebar-item title="热点事项" /> |
| | | <van-sidebar-item title="市场监管" /> |
| | | <van-sidebar-item title="劳动社保" /> |
| | | <van-sidebar-item title="城市管理" /> |
| | | <van-sidebar-item title="交通运输" /> |
| | | <van-sidebar-item title="教育医疗" /> |
| | | <van-sidebar-item title="公共服务" /> |
| | | <van-sidebar-item title="房屋规划" /> |
| | | </van-sidebar> |
| | | </view> |
| | | <view class="grid"> |
| | | <van-grid border="{{ false }}" column-num="3"> |
| | | <van-grid-item bind:click='onClick' data-item="{{item}}" use-slot wx:for="{{typeList[activeKey] }}" wx:for-item="item"> |
| | | <view class="grid-flex"> |
| | | <view class="grid-img"> |
| | | <image src="{{imgUrl}}{{item.imgUrl}}" mode="" /> |
| | | </view> |
| | | <view class="grid-title"> |
| | | {{item.title}} |
| | | </view> |
| | | </view> |
| | | </van-grid-item> |
| | | </van-grid> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
New file |
| | |
| | | /* pages/caseType/index.wxss */ |
| | | |
| | | |
| | | .cell-left { |
| | | display: flex; |
| | | width: 28%; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | background: #f2f3f5; |
| | | padding: 12rpx 16rpx; |
| | | border-radius: 10rpx; |
| | | } |
| | | |
| | | .cell-left-l { |
| | | text-align: right; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | font-size: var(--font-size-md, 14px); |
| | | } |
| | | |
| | | .cell-right { |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | background: #f2f3f5; |
| | | padding: 12rpx 16rpx; |
| | | border-radius: 10rpx; |
| | | font-size: var(--font-size-md, 14px); |
| | | } |
| | | |
| | | .card-box { |
| | | padding: 24rpx 24rpx 0 24rpx; |
| | | } |
| | | |
| | | .card { |
| | | border-radius: 2px; |
| | | background-color: #ffffff; |
| | | padding: 24rpx; |
| | | } |
| | | |
| | | .card-list { |
| | | border-radius: 2px; |
| | | background-color: #fff; |
| | | padding: 24rpx |
| | | } |
| | | |
| | | .ssim-scroll { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .card-title { |
| | | font-size: 30rpx; |
| | | line-height: 46rpx; |
| | | } |
| | | |
| | | .card-subTitle { |
| | | padding-top: 8rpx; |
| | | } |
| | | |
| | | .card-subTitle-l { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | | |
| | | .ssimList { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | position: absolute; |
| | | left: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | .sidebar { |
| | | background: #f2f2f2; |
| | | } |
| | | |
| | | .sidebar .van-sidebar { |
| | | width: 216rpx; |
| | | } |
| | | |
| | | .sidebar .van-sidebar-item--selected { |
| | | border-color: var(--main-color); |
| | | border-width: 8rpx; |
| | | } |
| | | |
| | | .sidebar .van-sidebar-item--selected { |
| | | background-color: #fff !important; |
| | | } |
| | | |
| | | .grid { |
| | | background-color: #fff; |
| | | width: 100%; |
| | | } |
| | | |
| | | .grid-flex { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | } |
| | | |
| | | .grid-img { |
| | | width: 128rpx; |
| | | height: 128rpx; |
| | | background-color: #eff8ff; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .grid-img image { |
| | | width: 64rpx; |
| | | height: 64rpx; |
| | | } |
| | | |
| | | .grid-title { |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .caseType-main { |
| | | display: flex; |
| | | flex: 1; |
| | | } |
| | | |
| | | .caseType-main .van-sidebar-item { |
| | | background-color: #f2f2f2; |
| | | } |
| | |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | // 热门资讯 与 视频 |
| | | // 咨询动态 |
| | | function getVideoAndMessageApi(param) { |
| | | return $$.request({ |
| | | url: 'paHotNews/listShow', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'sys', |
| | | noToken: true |
| | | }); |
| | | return $$.request({ |
| | | url: 'paHotNews/listShow', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'sys', |
| | | noToken: true |
| | | }); |
| | | } |
| | | |
| | | // 调解资源 |
| | | function getResourseApi(param) { |
| | | return $$.request({ |
| | | url: 'paCaseInfo/mediatePower', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'mediate', |
| | | noToken: true |
| | | }); |
| | | } |
| | | |
| | | // 消息提醒 |
| | | function getPopupMsgApi() { |
| | | return $$.request({ |
| | | url: 'paCaseInfo/newsRemind', |
| | | type: 'get', |
| | | service: 'mediate' |
| | | }); |
| | | return $$.request({ |
| | | url: 'ctUnit/countUnit', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'cust' |
| | | }); |
| | | } |
| | | |
| | | function loginApi(submitData) { |
| | | return $$.request({ |
| | | url: 'paAccount/tryRegister', |
| | | type: 'post', |
| | | submitData, |
| | | service: 'cust', |
| | | noToken: true |
| | | }); |
| | | return $$.request({ |
| | | url: 'paAccount/tryRegister', |
| | | type: 'post', |
| | | submitData, |
| | | service: 'cust', |
| | | noToken: true |
| | | }); |
| | | } |
| | | |
| | | function registerApi(submitData) { |
| | | return $$.request({ url: 'paAccount/empower', type: 'post', submitData, service: 'cust', noToken: true }); |
| | | return $$.request({ |
| | | url: 'paAccount/empower', |
| | | type: 'post', |
| | | submitData, |
| | | service: 'cust', |
| | | noToken: true |
| | | }); |
| | | } |
| | | |
| | | Page({ |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | msgCheckId: null, // 已经阅读过的提示不在弹出 |
| | | data: { |
| | | visible: true, |
| | | imgUrl: $$.url.img, |
| | | agreementMsg: '', // 服务协议 |
| | | popupVisible: false, |
| | | banner: [`${$$.url.img}banner-1.png`, `${$$.url.img}banner-2.jpg`, `${$$.url.img}banner-3.jpg`], // 轮播图 |
| | | resources: [{ |
| | | icon: `${$$.url.img}case.png`, |
| | | num: '0', |
| | | unit: '件', |
| | | title: '累计调解案件', |
| | | color: '#EB4D55', |
| | | type: 'case', |
| | | }, |
| | | { |
| | | icon: `${$$.url.img}mediater.png`, |
| | | num: '0', |
| | | unit: '名', |
| | | title: '注册调解员', |
| | | color: '#D10269', |
| | | type: 'mediater', |
| | | }, |
| | | { |
| | | icon: `${$$.url.img}organizations.png`, |
| | | num: '0', |
| | | unit: '家', |
| | | title: '入驻调解组织', |
| | | color: '#02D1D1', |
| | | type: 'organization', |
| | | }, |
| | | ], // 调解资源 |
| | | video: [], // 热门视频 |
| | | videoMore: false, |
| | | newMessage: [], // 最新资讯 |
| | | newMessageMore: false, |
| | | message: [{}], // 消息通知 |
| | | // 底部弹窗消息 |
| | | popupMsg: [{ |
| | | show: false, |
| | | type: 1, // 1:实名认证提醒,2:调解中提醒,3:预约提醒,4:司法确认中提醒 |
| | | title: '', |
| | | subTitle: '', |
| | | content: [], |
| | | buttonText: '', |
| | | }, ], |
| | | }, |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | msgCheckId: null, // 已经阅读过的提示不在弹出 |
| | | data: { |
| | | visible: true, |
| | | imgUrl: $$.url.img, |
| | | agreementMsg: '', // 服务协议 |
| | | popupVisible: false, |
| | | banner: [`${$$.url.img}banner-1.png`, `${$$.url.img}banner-2.jpg`, `${$$.url.img}banner-3.jpg`], // 轮播图 |
| | | countUnitData: {}, //化解资源 |
| | | userInfo: {}, //用户信息 |
| | | video: [], // 热门视频 |
| | | videoMore: false, |
| | | newMessage: [], // 最新资讯 |
| | | newMessageMore: false, |
| | | message: [{}], // 消息通知 |
| | | // 底部弹窗消息 |
| | | popupMsg: [{ |
| | | show: false, |
| | | type: 1, |
| | | title: '实名认证提醒', |
| | | subTitle: '您尚未通过实名认证,请尽快前往认证', |
| | | buttonText: '前往认证', |
| | | }], |
| | | }, |
| | | |
| | | // 跳转资讯链接 |
| | | goSeeMessage(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | wx.navigateTo({ |
| | | url: '../webview/index?showUrl=' + url |
| | | }); |
| | | }, |
| | | // 跳转资讯链接 |
| | | goSeeMessage(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | wx.navigateTo({ |
| | | url: '../webview/index?showUrl=' + url |
| | | }); |
| | | }, |
| | | |
| | | // 校验登录 or 实名 |
| | | userTest(type) { |
| | | if (!app.globalData.token && (type === 'login' || type === 'all')) { |
| | | $$.showModal({ |
| | | content: '抱歉您未登录,是否前往登录?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/login/index', |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | return false; |
| | | } |
| | | $$.hideLoading(); |
| | | }, |
| | | |
| | | // 调解资源去看看 |
| | | handleNavigateTo(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | if (type === 'case') { |
| | | $$.showToast({ |
| | | title: '功能暂未开启,敬请期待' |
| | | }); |
| | | } else if (type === 'register') { |
| | | if ($$.userTest('all')) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/register/index', |
| | | }); |
| | | } |
| | | } else { |
| | | if ($$.userTest('login')) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/findAdjust/index?type=' + (type === 'mediater' ? '1' : '2'), |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 查看更多 |
| | | handleGetMore(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | wx.navigateTo({ |
| | | url: `../../pages/homePageInfo/index?type=${type}`, |
| | | }); |
| | | }, |
| | | |
| | | // 平台协议操作 |
| | | handleAgree(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | if (type === 'noAgree') { |
| | | this.selectComponent('#tabbar-page').loginOut(); |
| | | $$.loginOutClearData(); |
| | | } else { |
| | | // 同意协议之后退出登录后不重复弹出 |
| | | wx.setStorage({ |
| | | key: 'agreement', |
| | | data: 1 |
| | | }); |
| | | } |
| | | // 调解资源去看看 |
| | | handleNavigateTo(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | let url = e.currentTarget.dataset.url; |
| | | if (type === 'register') { |
| | | if (!$$.userTest('all', 'bottom')) { |
| | | this.setData({ |
| | | popupVisible: false |
| | | popupMsg: [{ |
| | | show: true, |
| | | type: 1, |
| | | title: '实名认证提醒', |
| | | subTitle: '您尚未通过实名认证,请尽快前往认证', |
| | | buttonText: '前往认证', |
| | | }, ], |
| | | }); |
| | | }, |
| | | |
| | | // 跳转至我的消息 |
| | | handleGoToMessageCenter() { |
| | | return; |
| | | } |
| | | wx.navigateTo({ |
| | | url: url, |
| | | }); |
| | | } else { |
| | | if ($$.userTest('login')) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/messageCenter/index', |
| | | url: '../../pages/findAdjust/index?type=' + (type === 'mediater' ? '1' : '2'), |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 关闭消息弹窗 |
| | | handleClosePopupMsg(e) { |
| | | let index = e.currentTarget.dataset.index; |
| | | this.data.popupMsg[index].show = false; |
| | | this.data.popupMsg[index].content?.forEach((x) => { |
| | | this.msgCheckId = [...(this.msgCheckId || []), x.caseId]; |
| | | }); |
| | | this.setData({ |
| | | popupMsg: this.data.popupMsg |
| | | }); |
| | | }, |
| | | // 查看更多 |
| | | handleGetMore(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | wx.navigateTo({ |
| | | url: `../../pages/homePageInfo/index?type=${type}`, |
| | | }); |
| | | }, |
| | | |
| | | // 消息弹窗操作, TODO:跳转至详情页面的代码屏蔽,暂无用到,后续不用可删除 |
| | | handleClickPopupMsg(e) { |
| | | let value = e.currentTarget.dataset.item; |
| | | // let t = e.currentTarget.dataset.t; |
| | | if (e.currentTarget.dataset.type === 'more' && value.content.length === 1) { |
| | | return; |
| | | } |
| | | this.handleClosePopupMsg(e); |
| | | if (value.type === 1) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/realNameAuthentication/index' |
| | | }); |
| | | return; |
| | | } |
| | | if (value.type === 2 || (value.type === 3 && value.content[t].meetType === '22_00020-1')) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/myMediate/index' |
| | | }); |
| | | return; |
| | | } |
| | | if (value.type === 4 || (value.type === 3 && value.content[t].meetType === '22_00020-2')) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/myJudicialConfirmation/index' |
| | | }); |
| | | return; |
| | | } |
| | | // let caseId = value.content[t][value.type === 2 ? 'caseId' : 'id']; |
| | | // let pageType = '1'; |
| | | // if (value.type === 2 || (value.type === 3 && value.content[t].meetType === '22_00020-1')) { |
| | | // pageType = '1'; // 调解 |
| | | // } |
| | | // if (value.type === 4 || (value.type === 3 && value.content[t].meetType === '22_00020-2')) { |
| | | // pageType = '2'; // 司法确认 |
| | | // } |
| | | }, |
| | | // 跳转 |
| | | _handleGoPage(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | wx.navigateTo({ |
| | | url: url, |
| | | }); |
| | | }, |
| | | |
| | | // 获取底部弹窗消息提醒 |
| | | async getPopupMsg() { |
| | | const res = await getPopupMsgApi(); |
| | | if (res.type) { |
| | | let homePageMsgOut = []; |
| | | try { |
| | | let obj = wx.getStorageSync('homePageMsgOut'); |
| | | if (obj.time === $$.timeFormat(new Date(), 'YYYY-MM-DD')) { |
| | | homePageMsgOut = obj.value; |
| | | } |
| | | } catch (e) {} |
| | | let meetRemind = { |
| | | show: false, |
| | | type: 3, |
| | | title: '预约提醒', |
| | | content: [], |
| | | buttonText: '了解详情' |
| | | }; |
| | | let meetRemindVisible = false; |
| | | if (res.data.meetRemind) { |
| | | res.data.meetRemind.forEach((x) => { |
| | | if (homePageMsgOut.includes(x.caseId)) { |
| | | return; |
| | | } |
| | | let nowTime = $$.moment(); |
| | | let startTime = $$.moment(x.orderStartTime); |
| | | let diffTime = startTime.diff(nowTime, 'hours'); |
| | | // 距离预约开始时间小于一个小时并且未过期的时候提醒 |
| | | if (diffTime > 0 && diffTime <= 1) { |
| | | meetRemind.content.push(x); |
| | | meetRemindVisible = true; |
| | | } |
| | | }); |
| | | if (meetRemindVisible) { |
| | | meetRemind.show = true; |
| | | } |
| | | } |
| | | let caseRemind = { |
| | | show: false, |
| | | type: 2, |
| | | title: '调解中提醒', |
| | | content: [], |
| | | buttonText: '进入调解' |
| | | }; |
| | | let caseRemindVisible = false; |
| | | if (res.data.caseRemind) { |
| | | res.data.caseRemind.forEach((x) => { |
| | | if (homePageMsgOut.includes(x.caseId)) { |
| | | return; |
| | | } |
| | | caseRemind.content.push(x); |
| | | caseRemindVisible = true; |
| | | }); |
| | | if (caseRemindVisible) { |
| | | caseRemind.show = true; |
| | | } |
| | | } |
| | | let judicRemind = { |
| | | show: false, |
| | | type: 4, |
| | | title: '司法确认中提醒', |
| | | content: [], |
| | | buttonText: '进入司法确认' |
| | | }; |
| | | let judicRemindVisible = false; |
| | | if (res.data.judicRemind) { |
| | | res.data.judicRemind.forEach((x) => { |
| | | if (homePageMsgOut.includes(x.caseId)) { |
| | | return; |
| | | } |
| | | judicRemind.content.push(x); |
| | | judicRemindVisible = true; |
| | | }); |
| | | if (judicRemindVisible) { |
| | | judicRemind.show = true; |
| | | } |
| | | } |
| | | this.msgCheckId = homePageMsgOut; |
| | | this.setData({ |
| | | popupMsg: [meetRemind, caseRemind, judicRemind] |
| | | }); |
| | | } |
| | | }, |
| | | // 平台协议操作 |
| | | handleAgree(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | if (type === 'noAgree') { |
| | | this.selectComponent('#tabbar-page').loginOut(); |
| | | $$.loginOutClearData(); |
| | | } else { |
| | | // 同意协议之后退出登录后不重复弹出 |
| | | wx.setStorage({ |
| | | key: 'agreement', |
| | | data: 1 |
| | | }); |
| | | } |
| | | this.setData({ |
| | | popupVisible: false |
| | | }); |
| | | }, |
| | | |
| | | // 获取首页视频资讯数据 |
| | | async getVideoAndMessage(param) { |
| | | const res = await getVideoAndMessageApi(param); |
| | | if (res.type) { |
| | | let hotVideoList = res.data.hotVideoList || []; |
| | | let hotNewsList = res.data.hotNewsList || []; |
| | | wx.setStorage({ |
| | | key: 'homePageNewMsgTime', |
| | | data: $$.timeFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'), |
| | | }); |
| | | this.setData({ |
| | | video: hotVideoList.filter((item, index) => index < 2), |
| | | videoMore: hotVideoList.length > 2 ? true : false, |
| | | newMessage: hotNewsList.filter((item, index) => index < 2), |
| | | newMessageMore: hotNewsList.length > 2 ? true : false, |
| | | }); |
| | | } |
| | | }, |
| | | // 跳转至我的消息 |
| | | handleGoToMessageCenter() { |
| | | wx.navigateTo({ |
| | | url: '../../pages/messageCenter/index', |
| | | }); |
| | | }, |
| | | |
| | | // 获取首页调解资源数量 |
| | | async getResourse(param) { |
| | | const res = await getResourseApi(param); |
| | | let resources = { |
| | | ...this.data.resources |
| | | }; |
| | | if (res.type) { |
| | | resources[0].num = res.data.caseNum || 0; //累计案件 |
| | | resources[1].num = res.data.mediatorNum || 0; //调解员 |
| | | resources[2].num = res.data.unitNum || 0; //调解组织 |
| | | this.setData({ |
| | | resources |
| | | }); |
| | | } |
| | | }, |
| | | // 关闭消息弹窗 |
| | | handleClosePopupMsg(e) { |
| | | let index = e.currentTarget.dataset.index; |
| | | this.data.popupMsg[index].show = false; |
| | | this.data.popupMsg[index].content?.forEach((x) => { |
| | | this.msgCheckId = [...(this.msgCheckId || []), x.caseId]; |
| | | }); |
| | | this.setData({ |
| | | popupMsg: this.data.popupMsg |
| | | }); |
| | | }, |
| | | |
| | | // 获取服务协议 |
| | | async getAgreement() { |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.txt}agree.txt`, |
| | | type: 'get' |
| | | }); |
| | | if (res) { |
| | | this.data.popupVisible = true; |
| | | this.setData({ |
| | | popupVisible: true, |
| | | agreementMsg: `<pre class="pre">${res || '-'}</pre>` |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // getLogin(formData) { |
| | | // $$.showLoading(); |
| | | // wx.login({ |
| | | // async success(res) { |
| | | // const submitData = { |
| | | // ...formData, |
| | | // code: res.code |
| | | // } |
| | | // const res1 = await getjumpApi(submitData) |
| | | // $$.hideLoading(); |
| | | // if (res1.resp_code === "000000000000") { |
| | | // wx.setStorage({ |
| | | // key: 'userInfo', |
| | | // data: res1.data |
| | | // }); |
| | | // app.globalData.token = res1.data.token; |
| | | // $$.showToast({ |
| | | // title: '登录成功', |
| | | // icon: 'success' |
| | | // }); |
| | | // await $$.sleep(); |
| | | // wx.reLaunch({ |
| | | // url: '../../pages/homePage/index', |
| | | // }); |
| | | // } else { |
| | | // $$.showModal({ |
| | | // title: '提示', |
| | | // content: '您尚未注册,是否前往注册?', |
| | | // cancelText: '取消', |
| | | // confirmText: '前往', |
| | | // success: (res) => { |
| | | // if (res.confirm) { |
| | | // wx.navigateTo({ |
| | | // url: '../../pages/realNameAuthentication/index?backNum=2', |
| | | // }); |
| | | // } else { |
| | | // wx.navigateBack({ |
| | | // delta: 1, |
| | | // }); |
| | | // } |
| | | // }, |
| | | // }); |
| | | // } |
| | | |
| | | // } |
| | | // }) |
| | | // }, |
| | | |
| | | async dd() { |
| | | $$.showLoading(); |
| | | wx.login({ |
| | | async success(res) { |
| | | if (res.code) { |
| | | const accountInfo = wx.getAccountInfoSync(); |
| | | const submitData = { |
| | | appid: accountInfo.miniProgram.appId, |
| | | code: res.code, |
| | | } |
| | | const res1 = await loginApi(submitData); |
| | | if (res1.type) { |
| | | console.log(res1.data, 'res1111') |
| | | if (res1.data.state === '1') { |
| | | $$.hideLoading(); |
| | | console.log(res1, 'res1'); |
| | | wx.setStorage({ |
| | | key: 'userInfo', |
| | | data: res1.data |
| | | }); |
| | | app.globalData.token = res1.data.token; |
| | | $$.showToast({ |
| | | title: '登录成功', |
| | | icon: 'success' |
| | | }); |
| | | await $$.sleep(); |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | |
| | | } else { |
| | | $$.hideLoading(); |
| | | app.globalData.access_token = wx.getStorageSync('access_token'); |
| | | $$.showModal({ |
| | | title: '提示', |
| | | content: '您尚未注册,是否前往注册?', |
| | | cancelText: '取消', |
| | | confirmText: '前往', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | $$.showLoading(); |
| | | wx.getUserProfile({ |
| | | desc: '完善用户信息', |
| | | complete(res) { |
| | | if (res.errMsg === 'getUserProfile:ok') { |
| | | wx.login({ |
| | | async success(res2) { |
| | | if (res2.code) { |
| | | const accountInfo = wx.getAccountInfoSync(); |
| | | const submitData = { |
| | | appid: accountInfo.miniProgram.appId, |
| | | code: res2.code, |
| | | avatar: res?.userInfo.avatarUrl, |
| | | encryptedData: res.encryptedData, |
| | | ivStr: res.iv, |
| | | }; |
| | | const res3 = await registerApi(submitData); |
| | | $$.hideLoading(); |
| | | if (res3.type) { |
| | | wx.setStorage({ |
| | | key: 'userInfo', |
| | | data: res3.data |
| | | }); |
| | | app.globalData.token = res3.data.token; |
| | | $$.showToast({ |
| | | title: '登录成功', |
| | | icon: 'success' |
| | | }); |
| | | await $$.sleep(); |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | } |
| | | } else { |
| | | $$.hideLoading(); |
| | | $$.showToast('登录失败,请稍后重试'); |
| | | } |
| | | }, |
| | | }); |
| | | } else { |
| | | $$.hideLoading(); |
| | | $$.showToast({ |
| | | title: '抱歉!授权失败' |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | |
| | | // wx.navigateTo({ |
| | | // url: '../../pages/login/index', |
| | | // }); |
| | | } else { |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | } |
| | | |
| | | } |
| | | |
| | | // app.globalData.access_token = wx.getStorageSync('access_token'); |
| | | // console.log(res, 'res') |
| | | // console.log(app.globalData.access_token, 'app.globalData.access_token') |
| | | // $$.showModal({ |
| | | // title: '提示', |
| | | // content: '您尚未注册,是否前往注册?', |
| | | // cancelText: '取消', |
| | | // confirmText: '前往', |
| | | // success: (res) => { |
| | | // if (res.confirm) { |
| | | // wx.navigateTo({ |
| | | // url: '../../pages/login/index', |
| | | // }); |
| | | // } else { |
| | | // wx.navigateBack({ |
| | | // delta: 1, |
| | | // }); |
| | | // } |
| | | // }, |
| | | // }); |
| | | |
| | | // const accountInfo = wx.getAccountInfoSync(); |
| | | // const submitData = { |
| | | // appid: accountInfo.miniProgram.appId, |
| | | // code: res.code, |
| | | // } |
| | | // app.globalData.access_token = wx.getStorageSync('access_token'); |
| | | // const res1 = await loginApi(submitData); |
| | | // console.log(res1, 'res1') |
| | | // $$.hideLoading(); |
| | | // console.log(res1, 'res1'); |
| | | // if (res1.type) { |
| | | // wx.setStorage({ |
| | | // key: 'userInfo', |
| | | // data: res1.data |
| | | // }); |
| | | // app.globalData.token = res1.data.token; |
| | | // $$.showToast({ |
| | | // title: '登录成功', |
| | | // icon: 'success' |
| | | // }); |
| | | // await $$.sleep(); |
| | | // wx.reLaunch({ |
| | | // url: '../../pages/homePage/index', |
| | | // }); |
| | | // } |
| | | |
| | | } else { |
| | | $$.hideLoading(); |
| | | $$.showToast('登录失败,请稍后重试'); |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | aa() { |
| | | wx.navigateTo({ |
| | | url: '../../pages/homePage/index?access_token=2', |
| | | }); |
| | | }, |
| | | |
| | | cc() { |
| | | wx.navigateTo({ |
| | | url: '../../pages/realNameAuthentication/index', |
| | | }); |
| | | }, |
| | | |
| | | bb() { |
| | | wx.request({ |
| | | url: 'https://xcx.pinganbaiyun.cn/p_060_cs_intf/api_001/sv_002_get_paby_login_info', //仅为示例,并非真实的接口地址 |
| | | data: { |
| | | "access_token": "测试token", |
| | | "app_id": "测试", |
| | | "secret": "测试" |
| | | }, |
| | | method: 'post', |
| | | success(res) { |
| | | console.log(res.data, '平安白云') |
| | | } |
| | | }) |
| | | }, |
| | | // 消息弹窗操作, TODO:跳转至详情页面的代码屏蔽,暂无用到,后续不用可删除 |
| | | handleClickPopupMsg(e) { |
| | | let value = e.currentTarget.dataset.item; |
| | | // let t = e.currentTarget.dataset.t; |
| | | if (e.currentTarget.dataset.type === 'more' && value.content.length === 1) { |
| | | return; |
| | | } |
| | | this.handleClosePopupMsg(e); |
| | | if (value.type === 1) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/realNameAuthentication/index' |
| | | }); |
| | | return; |
| | | } |
| | | if (value.type === 2 || (value.type === 3 && value.content[t].meetType === '22_00020-1')) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/myMediate/index' |
| | | }); |
| | | return; |
| | | } |
| | | if (value.type === 4 || (value.type === 3 && value.content[t].meetType === '22_00020-2')) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/myJudicialConfirmation/index' |
| | | }); |
| | | return; |
| | | } |
| | | }, |
| | | |
| | | |
| | | // 获取首页视频资讯数据 |
| | | async getVideoAndMessage(param) { |
| | | const res = await getVideoAndMessageApi(param); |
| | | if (res.type) { |
| | | let hotVideoList = res.data.hotVideoList || []; |
| | | let hotNewsList = res.data.hotNewsList || []; |
| | | wx.setStorage({ |
| | | key: 'homePageNewMsgTime', |
| | | data: $$.timeFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'), |
| | | }); |
| | | this.setData({ |
| | | video: hotVideoList.filter((item, index) => index < 2), |
| | | videoMore: hotVideoList.length > 2 ? true : false, |
| | | newMessage: hotNewsList.filter((item, index) => index < 2), |
| | | newMessageMore: hotNewsList.length > 2 ? true : false, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // async handleGetUserInfo() { |
| | | // $$.showLoading(); |
| | | // wx.getUserProfile({ |
| | | // desc: '完善用户信息', |
| | | // complete(res) { |
| | | // if (res.errMsg === 'getUserProfile:ok') { |
| | | // wx.login({ |
| | | // async success(res2) { |
| | | // if (res2.code) { |
| | | // const accountInfo = wx.getAccountInfoSync(); |
| | | // const submitData = { |
| | | // appid: accountInfo.miniProgram.appId, |
| | | // code: res2.code, |
| | | // avatar: res?.userInfo.avatarUrl, |
| | | // encryptedData: res.encryptedData, |
| | | // ivStr: res.iv, |
| | | // }; |
| | | // const res3 = await loginApi(submitData); |
| | | // $$.hideLoading(); |
| | | // if (res3.type) { |
| | | // wx.setStorage({ |
| | | // key: 'userInfo', |
| | | // data: res3.data |
| | | // }); |
| | | // app.globalData.token = res3.data.token; |
| | | // $$.showToast({ |
| | | // title: '登录成功', |
| | | // icon: 'success' |
| | | // }); |
| | | // await $$.sleep(); |
| | | // wx.reLaunch({ |
| | | // url: '../../pages/homePage/index', |
| | | // }); |
| | | // } |
| | | // } else { |
| | | // $$.hideLoading(); |
| | | // $$.showToast('登录失败,请稍后重试'); |
| | | // } |
| | | // }, |
| | | // }); |
| | | // } else { |
| | | // $$.hideLoading(); |
| | | // $$.showToast({ |
| | | // title: '抱歉!授权失败' |
| | | // }); |
| | | // } |
| | | // }, |
| | | // }); |
| | | // }, |
| | | // 获取首页调解资源数量 |
| | | async getResourse(param) { |
| | | const res = await getResourseApi(param); |
| | | this.setData({ |
| | | countUnitData: res.data |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | // const formData = { |
| | | // access_token: options.access_token, |
| | | // appid: options.appid, |
| | | // secret: options.secret |
| | | // // } |
| | | // 获取服务协议 |
| | | async getAgreement() { |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.txt}agree.txt`, |
| | | type: 'get' |
| | | }); |
| | | if (res) { |
| | | this.data.popupVisible = true; |
| | | this.setData({ |
| | | popupVisible: true, |
| | | agreementMsg: `<pre class="pre">${res || '-'}</pre>` |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // this.dd(); |
| | | // this.handleGetUserInfo() |
| | | // 当登录后返回时弹出协议 |
| | | let agreement = wx.getStorageSync('agreement'); |
| | | if (!agreement && app.globalData.token) this.getAgreement(); |
| | | }, |
| | | |
| | | onShow(options) { |
| | | console.log(options,'options') |
| | | if (options.extraData.access_token && !app.globalData.token) { |
| | | wx.setStorage({ |
| | | key: 'access_token', |
| | | data: options.extraData.access_token |
| | | }); |
| | | this.dd(); |
| | | $$.showToast({ |
| | | title: '已监测到平安白云传入的access_token', |
| | | async dd() { |
| | | $$.showLoading(); |
| | | wx.login({ |
| | | async success(res) { |
| | | if (res.code) { |
| | | const accountInfo = wx.getAccountInfoSync(); |
| | | const submitData = { |
| | | appid: accountInfo.miniProgram.appId, |
| | | code: res.code, |
| | | } |
| | | const res1 = await loginApi(submitData); |
| | | if (res1.type) { |
| | | console.log(res1.data, 'res1111') |
| | | if (res1.data.state === '1') { |
| | | $$.hideLoading(); |
| | | console.log(res1, 'res1'); |
| | | wx.setStorage({ |
| | | key: 'userInfo', |
| | | data: res1.data |
| | | }); |
| | | app.globalData.token = res1.data.token; |
| | | $$.showToast({ |
| | | title: '登录成功', |
| | | icon: 'success' |
| | | }); |
| | | } |
| | | let appid = wx.getAccountInfoSync().miniProgram.appId; |
| | | this.getResourse({ |
| | | appid |
| | | }); |
| | | let that = this; |
| | | wx.getStorage({ |
| | | key: 'homePageNewMsgTime', |
| | | complete: (res) => { |
| | | if (that.data.video.length === 0 || that.data.newMessage.length == 0) { |
| | | this.getVideoAndMessage({ |
| | | appid |
| | | }); |
| | | return; |
| | | } |
| | | if (res.data && $$.moment().diff($$.moment(res.data), 'minute') > 60) { |
| | | this.getVideoAndMessage({ |
| | | appid |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | // 获取弹窗信息提醒 |
| | | if (app.globalData.token) { |
| | | if (!$$.userTest('realName', 'bottom')) { |
| | | this.setData({ |
| | | popupMsg: [{ |
| | | show: true, |
| | | type: 1, |
| | | title: '实名认证提醒', |
| | | subTitle: '您尚未通过实名认证,根据调解实名制规定,建议您尽快前往认证。', |
| | | buttonText: '前往认证', |
| | | }, ], |
| | | }); |
| | | return; |
| | | } |
| | | this.getPopupMsg(); |
| | | } |
| | | }, |
| | | }); |
| | | await $$.sleep(); |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | |
| | | onHide() { |
| | | if (!!this.msgCheckId) { |
| | | wx.setStorage({ |
| | | key: 'homePageMsgOut', |
| | | data: { |
| | | time: $$.timeFormat(new Date(), 'YYYY-MM-DD'), |
| | | value: this.msgCheckId, |
| | | } else { |
| | | $$.hideLoading(); |
| | | app.globalData.access_token = wx.getStorageSync('access_token'); |
| | | $$.showModal({ |
| | | title: '提示', |
| | | content: '您尚未注册,是否前往注册?', |
| | | cancelText: '取消', |
| | | confirmText: '前往', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | $$.showLoading(); |
| | | wx.getUserProfile({ |
| | | desc: '完善用户信息', |
| | | complete(res) { |
| | | if (res.errMsg === 'getUserProfile:ok') { |
| | | wx.login({ |
| | | async success(res2) { |
| | | if (res2.code) { |
| | | const accountInfo = wx.getAccountInfoSync(); |
| | | const submitData = { |
| | | appid: accountInfo.miniProgram.appId, |
| | | code: res2.code, |
| | | avatar: res?.userInfo.avatarUrl, |
| | | encryptedData: res.encryptedData, |
| | | ivStr: res.iv, |
| | | }; |
| | | const res3 = await registerApi(submitData); |
| | | $$.hideLoading(); |
| | | if (res3.type) { |
| | | wx.setStorage({ |
| | | key: 'userInfo', |
| | | data: res3.data |
| | | }); |
| | | app.globalData.token = res3.data.token; |
| | | $$.showToast({ |
| | | title: '登录成功', |
| | | icon: 'success' |
| | | }); |
| | | await $$.sleep(); |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | } |
| | | } else { |
| | | $$.hideLoading(); |
| | | $$.showToast('登录失败,请稍后重试'); |
| | | } |
| | | }, |
| | | }); |
| | | } else { |
| | | $$.hideLoading(); |
| | | $$.showToast({ |
| | | title: '抱歉!授权失败' |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | |
| | | // wx.navigateTo({ |
| | | // url: '../../pages/login/index', |
| | | // }); |
| | | } else { |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | } else { |
| | | $$.hideLoading(); |
| | | $$.showToast('登录失败,请稍后重试'); |
| | | } |
| | | }, |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage: function () {}, |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) {}, |
| | | |
| | | onShow(options) { |
| | | if (!$$.userTest('login')) { |
| | | return |
| | | } |
| | | let userInfo = wx.getStorageSync('userInfo') || {}; |
| | | let appid = wx.getAccountInfoSync().miniProgram.appId; |
| | | this.setData({ |
| | | userInfo |
| | | }); |
| | | |
| | | |
| | | let that = this; |
| | | wx.getStorage({ |
| | | key: 'homePageNewMsgTime', |
| | | complete: (res) => { |
| | | if (that.data.video.length === 0 || !that.data.countUnitData) { |
| | | this.getVideoAndMessage({ |
| | | appid |
| | | }); |
| | | this.getResourse({ |
| | | appid |
| | | }); |
| | | return; |
| | | } |
| | | if (res.data && $$.moment().diff($$.moment(res.data), 'minute') > 60) { |
| | | this.getVideoAndMessage({ |
| | | appid |
| | | }); |
| | | this.getResourse({ |
| | | appid |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | let agreement = wx.getStorageSync('agreement'); |
| | | |
| | | // 获取弹窗信息提醒 |
| | | if (app.globalData.token) { |
| | | if (!agreement) { |
| | | this.getAgreement(); |
| | | return; |
| | | } |
| | | if (!$$.userTest('realName', 'bottom')) { |
| | | this.setData({ |
| | | popupMsg: [{ |
| | | show: true, |
| | | type: 1, |
| | | title: '实名认证提醒', |
| | | subTitle: '您尚未通过实名认证,请尽快前往认证', |
| | | buttonText: '前往认证', |
| | | }, ], |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | | onShareAppMessage: function () {}, |
| | | }); |
| | |
| | | { |
| | | "navigationBarBackgroundColor": "#ffffff", |
| | | "navigationBarTextStyle": "black", |
| | | |
| | | "usingComponents": { |
| | | "time-format": "../../components/time-format/index" |
| | | } |
| | |
| | | |
| | | <page-meta page-style="{{ popupMsg.show ? 'overflow: hidden;' : '' }}" /> |
| | | |
| | | <tabbar-page id="tabbar-page"> |
| | | <!-- 幻灯片 --> |
| | | |
| | | <!-- 幻灯片 --> |
| | | <view class="homePage-main"> |
| | | <swiper autoplay="{{ true }}" class="swiper" indicator-dots="{{ true }}"> |
| | | <swiper-item wx:for="{{ banner }}" wx:key="index"> |
| | | <image class="swiper-item" src="{{ item }}" /> |
| | | </swiper-item> |
| | | </swiper> |
| | | <view class="main"> |
| | | <view bindtap="handleNavigateTo" class="mediate" data-type="register"> |
| | | <image class="mediate-image" src="{{ imgUrl }}/apply.png" /> |
| | | <view class="mediate"> |
| | | <view>你好,{{userInfo.trueName||'游客'}}</view> |
| | | <view bindtap="_handleGoPage" data-url="../../pages/me/index" wx:if="{{userInfo.realStatus===1}}" class="public-color">个人中心</view> |
| | | <view wx:else bindtap="handleNavigateTo" data-url="../../pages/realNameAuthentication/index" data-type="register" class="public-color">实名认证</view> |
| | | </view> |
| | | <!-- 消息通知 --> |
| | | <view bindtap="handleGoToMessageCenter" class="message-bg"> |
| | | <swiper autoplay="true" interval="3000" style="height: 100%;" vertical="true"> |
| | | <block wx:for="{{ message }}" wx:key="index"> |
| | | <swiper-item> |
| | | <view class="message"> |
| | | <view class="message-content"> |
| | | <view class="message-item"> |
| | | <view class="message-item-round" /> |
| | | <view class="message-item-text">您的案件已经进入调解流程</view> |
| | | <view class="message-item-time">2分钟前</view> |
| | | </view> |
| | | </view> |
| | | <image src="{{ imgUrl }}/rightCircleOutlined.png" style="width: 24rpx;height: 24rpx;" /> |
| | | </view> |
| | | </swiper-item> |
| | | </block> |
| | | </swiper> |
| | | </view> |
| | | <!-- 调解资源 --> |
| | | <!-- <view bindtap='aa'>1111</view> --> |
| | | <view class="resources radius"> |
| | | <view class="itemTitle"> |
| | | <image class="itemTitle-image" src="{{ imgUrl }}mediation-center.png" /> |
| | | <view>调解资源</view> |
| | | <!-- 服务申请 --> |
| | | <view> |
| | | <view class="main_title">服务申请</view> |
| | | <view class="flex"> |
| | | <view bindtap="handleNavigateTo" data-url="../../pages/register/index" data-type="register" class="flex_1 flex_blue"> |
| | | <view class="main_subTitle">反映诉求</view> |
| | | <view>轻松来访</view> |
| | | </view> |
| | | <view bindtap="handleNavigateTo" data-url="../../pages/myRegisterList/index" data-type="register" class="flex_1 flex_orange"> |
| | | <view class="main_subTitle">我的申请</view> |
| | | <view>申请进度查询</view> |
| | | </view> |
| | | </view> |
| | | <view class="item-resources"> |
| | | <view class="item-resources-item-bg" wx:for="{{ resources }}" wx:key="index"> |
| | | <view bindtap="handleNavigateTo" data-type="{{ item.type }}" class="item-resources-item"> |
| | | <image class="item-resources-image" src="{{ item.icon }}" /> |
| | | <view class="item-resources-num" style="color:{{item.color}}">{{ item.num }}{{ item.unit }}</view> |
| | | <view class="item-resources-title">{{ item.title }}</view> |
| | | <view class="item-resources-btn" style="color:{{item.color}};border-color: {{item.color}};">去看看</view> |
| | | <view class="flex marginTop_12"> |
| | | <view class="flex_1 flex_green"> |
| | | <view class="main_subTitle">事项咨询</view> |
| | | <view>解决您身边的问题</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 化解资源 --> |
| | | <view> |
| | | <view class="main_title">化解资源</view> |
| | | <view class="flex" style="gap:16rpx"> |
| | | <view class="flex_2" bindtap="_handleGoPage" data-url="../../pages/ssimList/index"> |
| | | <image class="flex_2_image" src="{{imgUrl}}home_1.png" mode="" /> |
| | | <view> |
| | | <view class="flex_zy_title">综治中心</view> |
| | | <view class="flex_num">{{countUnitData.zzUnitNum||0}}</view> |
| | | </view> |
| | | </view> |
| | | <view class="flex_2" bindtap="_handleGoPage" data-url="../../pages/organizeList/index"> |
| | | <image class="flex_2_image1" src="{{imgUrl}}home_2.png" mode="" /> |
| | | <view> |
| | | <view class="flex_zy_title">调解组织</view> |
| | | <view class="flex_num">{{countUnitData.tzUnitNum||0}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 热门视频 --> |
| | | <view class="item-cell-group radius" wx:if="{{ video.length > 0 }}"> |
| | | <view class="itemTitle"> |
| | | <image class="itemTitle-image" src="{{ imgUrl }}video.png" /> |
| | | <view>热门视频</view> |
| | | </view> |
| | | <block> |
| | | <view class="item-cell item-cell-video" wx:for="{{ video }}" wx:key="index"> |
| | | <view class="item-cell-content"> |
| | | <view class="van-multi-ellipsis--l2">{{ item.title }}</view> |
| | | <view class="item-cell-text"> |
| | | 发布时间: |
| | | <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" /> |
| | | </view> |
| | | </view> |
| | | <video class="item-video" id="myVideo-{{index}}" show-mute-btn="{{ true }}" src="{{ item.showUrl }}" /> |
| | | |
| | | <!-- 咨询动态 --> |
| | | <view> |
| | | <view class="flex_dt"> |
| | | <view class="main_title">咨询动态</view> |
| | | <view bindtap="handleGetMore" data-type="newMsg" wx:if="{{ newMessageMore }}" class=" flex_dt_more">查看更多 |
| | | <image class="flex_dt_more_img" src="./../../img/right.png" /> |
| | | </view> |
| | | <view bindtap="handleGetMore" class="more-btn" data-type="hotVideo" wx:if="{{ videoMore }}"> |
| | | <view>查看更多</view> |
| | | <image class="more-btn-image" src="{{ imgUrl }}downCircleOutlined.png" /> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | <!-- 最新资讯 --> |
| | | <view class="item-cell-group radius"> |
| | | <view class="itemTitle"> |
| | | <image class="itemTitle-image" src="{{ imgUrl }}new-msg.png" /> |
| | | <view>最新资讯</view> |
| | | </view> |
| | | <block> |
| | | <view class="item-cell" wx:for="{{ newMessage }}" wx:key="index"> |
| | | <view bindtap="goSeeMessage" class="van-multi-ellipsis--l3" data-url="{{ item.showUrl }}">{{ item.title }}</view> |
| | | <view class="item-cell-text"> |
| | | 发布时间: |
| | | <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" /> |
| | | <view class="dt_card" bindtap="goSeeMessage" wx:for="{{ newMessage }}" style="margin-top:{{index===0?0:'8px'}}" wx:key="index"> |
| | | <view class="dt_card_l"> |
| | | <view class="dt_card_title">{{item.title}}</view> |
| | | <view class="dt_card_time"> |
| | | <time-format format="YYYY-MM-DD" value="{{ item.pushTime }}" /> {{item.playNum}}人阅读 |
| | | </view> |
| | | </view> |
| | | <view bindtap="handleGetMore" class="more-btn" data-type="newMsg" wx:if="{{ newMessageMore }}"> |
| | | <view>查看更多</view> |
| | | <image class="more-btn-image" src="{{ imgUrl }}downCircleOutlined.png" /> |
| | | </view> |
| | | </block> |
| | | <view class="dt_card_r"></view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 平台服务协议弹出 --> |
| | | <van-popup bind:close="handleClosePopup" round show="{{ popupVisible }}" z-index="1000"> |
| | | <scroll-view class="popup-scroll" scroll-y> |
| | | <rich-text nodes="{{ agreementMsg }}"></rich-text> |
| | | </scroll-view> |
| | | <view class="popup-button"> |
| | | <van-button bind:click="handleAgree" block data-type="agree" round type="primary">同意</van-button> |
| | | <view bindtap="handleAgree" class="popup-button-no" data-type="noAgree">不同意并退出</view> |
| | | |
| | | </view> |
| | | |
| | | |
| | | <!-- 底部弹窗 --> |
| | | <block wx:for="{{ popupMsg }}" wx:key="index"> |
| | | <van-popup bind:close="handleClosePopupMsg" closeable data-index="{{ index }}" position="bottom" round show="{{ item.show }}" title="{{ item.title || '' }}" zIndex="1000"> |
| | | <view class="homePage-popupMsg"> |
| | | <view class="homePage-popupMsg-subTitle" wx:if="{{ item.subTitle }}">{{ item.subTitle }}</view> |
| | | <image class="homePage-popupMsg-realNamePng" src="{{ imgUrl }}msg-realName.png" wx:if="{{ item.type === 1 }}" /> |
| | | <scroll-view scroll-y="{{true}}" style="max-height:600rpx" wx:elif="{{ item.type === 3 }}"> |
| | | <view bind:tap="handleClickPopupMsg" class="homePage-popupMsg-content-item" data-index="{{ index }}" data-item="{{ item }}" data-t="{{ t }}" data-type="more" wx:for="{{ item.content }}" wx:for-index="t" wx:for-item="x" wx:key="t"> |
| | | <image class="homePage-popupMsg-content-itemImg" src="{{ imgUrl }}msg-order.png" /> |
| | | <view class="homePage-popupMsg-content-itemTitle second-font"> |
| | | <view> |
| | | 预约事项:{{ x.meetWayName }} |
| | | <text class="tag tag-green-border" style="margin-left:16rpx">{{x.meetTypeName}}</text> |
| | | </view> |
| | | <view> |
| | | 预约时间:今天 |
| | | <time-format format="HH:mm" value="{{ x.orderStartTime }}" /> |
| | | <text>~</text> |
| | | <time-format format="HH:mm" value="{{ x.orderEndTime }}" /> |
| | | </view> |
| | | <view>预约地点:{{ x.meetAddr || '-' }}</view> |
| | | </view> |
| | | <van-icon name="arrow" size="16" wx:if="{{ item.content.length > 1 }}" /> |
| | | </view> |
| | | </scroll-view> |
| | | <scroll-view scroll-y="{{true}}" style="max-height:600rpx" wx:else> |
| | | <view bind:tap="handleClickPopupMsg" class="homePage-popupMsg-content-item" data-index="{{ index }}" data-item="{{ item }}" data-t="{{ t }}" data-type="more" wx:for="{{ item.content }}" wx:for-index="t" wx:for-item="x" wx:key="t"> |
| | | <image class="homePage-popupMsg-content-itemImg" src="{{ imgUrl }}msg-mediate-ing.png" /> |
| | | <view class="homePage-popupMsg-content-itemTitle"> |
| | | <view>{{ x[ item.type === 2 ? 'caseTitle' : 'judicTitle' ] || '-' }}</view> |
| | | <text class="tag tag-orange">进行中</text> |
| | | </view> |
| | | <van-icon name="arrow" size="16" wx:if="{{ item.content.length > 1 }}" /> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | <view class="homePage-popupMsg-button" wx:if="{{ item.type === 1 || item.content.length === 1 }}"> |
| | | <van-button bind:click="handleClickPopupMsg" block data-index="{{ index }}" data-t="0" data-item="{{ item }}" type="primary">{{ item.buttonText }}</van-button> |
| | | </view> |
| | | </van-popup> |
| | | <!-- 底部弹窗 --> |
| | | <block wx:for="{{ popupMsg }}" wx:key="index"> |
| | | <van-popup bind:close="handleClosePopupMsg" closeable data-index="{{ index }}" position="bottom" round show="{{ item.show }}" title="{{ item.title || '' }}" zIndex="1000"> |
| | | <view class="homePage-popupMsg"> |
| | | <view class="homePage-popupMsg-subTitle" wx:if="{{ item.subTitle }}">{{ item.subTitle }}</view> |
| | | <image class="homePage-popupMsg-realNamePng" src="{{ imgUrl }}msg-realName.png" wx:if="{{ item.type === 1 }}" /> |
| | | <scroll-view scroll-y="{{true}}" style="max-height:600rpx" wx:elif="{{ item.type === 3 }}"> |
| | | <view bind:tap="handleClickPopupMsg" class="homePage-popupMsg-content-item" data-index="{{ index }}" data-item="{{ item }}" data-t="{{ t }}" data-type="more" wx:for="{{ item.content }}" wx:for-index="t" wx:for-item="x" wx:key="t"> |
| | | <image class="homePage-popupMsg-content-itemImg" src="{{ imgUrl }}msg-order.png" /> |
| | | <view class="homePage-popupMsg-content-itemTitle second-font"> |
| | | <view> |
| | | 预约事项:{{ x.meetWayName }} |
| | | <text class="tag tag-green-border" style="margin-left:16rpx">{{x.meetTypeName}}</text> |
| | | </view> |
| | | <view> |
| | | 预约时间:今天 |
| | | <time-format format="HH:mm" value="{{ x.orderStartTime }}" /> |
| | | <text>~</text> |
| | | <time-format format="HH:mm" value="{{ x.orderEndTime }}" /> |
| | | </view> |
| | | <view>预约地点:{{ x.meetAddr || '-' }}</view> |
| | | </view> |
| | | <van-icon name="arrow" size="16" wx:if="{{ item.content.length > 1 }}" /> |
| | | </view> |
| | | </scroll-view> |
| | | <scroll-view scroll-y="{{true}}" style="max-height:600rpx" wx:else> |
| | | <view bind:tap="handleClickPopupMsg" class="homePage-popupMsg-content-item" data-index="{{ index }}" data-item="{{ item }}" data-t="{{ t }}" data-type="more" wx:for="{{ item.content }}" wx:for-index="t" wx:for-item="x" wx:key="t"> |
| | | <image class="homePage-popupMsg-content-itemImg" src="{{ imgUrl }}msg-mediate-ing.png" /> |
| | | <view class="homePage-popupMsg-content-itemTitle"> |
| | | <view>{{ x[ item.type === 2 ? 'caseTitle' : 'judicTitle' ] || '-' }}</view> |
| | | <text class="tag tag-orange">进行中</text> |
| | | </view> |
| | | <van-icon name="arrow" size="16" wx:if="{{ item.content.length > 1 }}" /> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | <view class="homePage-popupMsg-button" wx:if="{{ item.type === 1 || item.content.length === 1 }}"> |
| | | <van-button bind:click="handleClickPopupMsg" block data-index="{{ index }}" data-t="0" data-item="{{ item }}" type="primary">{{ item.buttonText }}</van-button> |
| | | </view> |
| | | </van-popup> |
| | | </block> |
| | | |
| | | |
| | | </tabbar-page> |
| | | </block> |
| | |
| | | @import '../../styles/public_components.wxss'; |
| | | |
| | | .radius { |
| | | border-radius: var(--border-radius-card); |
| | | border-radius: var(--border-radius-card); |
| | | } |
| | | |
| | | .pre { |
| | | font-size: 28rpx; |
| | | line-height: 1.5; |
| | | font-size: 28rpx; |
| | | line-height: 1.5; |
| | | } |
| | | |
| | | .swiper { |
| | | height: 300rpx; |
| | | height: 300rpx; |
| | | } |
| | | |
| | | .swiper-item { |
| | | height: 100%; |
| | | width: 100%; |
| | | height: 100%; |
| | | width: 100%; |
| | | } |
| | | |
| | | .homePage-main { |
| | | height: 100vh; |
| | | background-color: #EFF8FF; |
| | | } |
| | | |
| | | .main { |
| | | padding: 16rpx var(--padding-my); |
| | | padding: 16rpx var(--padding-my); |
| | | } |
| | | |
| | | .main_title { |
| | | padding: var(--padding-my) 0 24rpx; |
| | | font-size: 32rpx; |
| | | line-height: 48rpx; |
| | | } |
| | | |
| | | .main_subTitle { |
| | | font-size: 32rpx; |
| | | line-height: 48rpx; |
| | | } |
| | | |
| | | .main_color { |
| | | color: var(--main-color); |
| | | } |
| | | |
| | | .flex { |
| | | display: flex; |
| | | gap: 30rpx; |
| | | |
| | | } |
| | | |
| | | .flex_1 { |
| | | flex: 1; |
| | | color: #fff; |
| | | padding: 12px; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .flex_2 { |
| | | flex: 1; |
| | | padding: 12px; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | gap: 16rpx; |
| | | } |
| | | |
| | | .flex_2_image { |
| | | width: 166rpx; |
| | | height: 100rpx; |
| | | } |
| | | |
| | | .flex_2_image1 { |
| | | width: 96rpx; |
| | | height: 96rpx; |
| | | } |
| | | |
| | | .flex_dt { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .flex_zy_title { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | font-size: 28rpx; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .flex_num { |
| | | font-family: DingTalk; |
| | | color: var(--main-color); |
| | | font-size: 20px; |
| | | line-height: 28px; |
| | | } |
| | | |
| | | .flex_dt_more { |
| | | color: rgba(26, 111, 184, 0.60); |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .flex_dt_more_img { |
| | | width: 14px; |
| | | height: 14px; |
| | | } |
| | | |
| | | .dt_card { |
| | | border-radius: 2px; |
| | | background-color: #fff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 8px 12px; |
| | | } |
| | | |
| | | .dt_card_l { |
| | | flex: 2; |
| | | } |
| | | |
| | | .dt_card_time { |
| | | color: rgba(23, 26, 29, 0.40); |
| | | } |
| | | |
| | | .dt_card_r { |
| | | flex: 1; |
| | | background: #ef6c24; |
| | | } |
| | | |
| | | .dt_card_title { |
| | | margin-bottom: 4px; |
| | | } |
| | | |
| | | .flex_blue { |
| | | background: linear-gradient(90deg, #5fa6d4, #3a8ac6 50%, #1a6fb8 100%); |
| | | } |
| | | |
| | | .flex_orange { |
| | | background: linear-gradient(90deg, #ffa940, #fa8c16 50%, #ef6c24 100%); |
| | | } |
| | | |
| | | .flex_green { |
| | | background: linear-gradient(90deg, #36cfc9, #13c2c2 50%, #08979c 100%); |
| | | } |
| | | |
| | | .marginTop_12 { |
| | | margin-top: 24rpx; |
| | | } |
| | | |
| | | .mediate { |
| | | height: 140rpx; |
| | | height: 92rpx; |
| | | background-color: #fff; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 0 32rpx; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .mediate-image { |
| | | height: 140rpx; |
| | | width: 100%; |
| | | height: 140rpx; |
| | | width: 100%; |
| | | } |
| | | |
| | | .message-bg { |
| | | height: 24rpx; |
| | | padding: 16rpx; |
| | | background-color: #ffffff; |
| | | margin-top: 16rpx; |
| | | border-radius: 10rpx; |
| | | height: 24rpx; |
| | | padding: 16rpx; |
| | | background-color: #ffffff; |
| | | margin-top: 16rpx; |
| | | border-radius: 10rpx; |
| | | } |
| | | |
| | | .message { |
| | | height: 24rpx; |
| | | font-size: 24rpx; |
| | | line-height: 24rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | height: 24rpx; |
| | | font-size: 24rpx; |
| | | line-height: 24rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .message-content { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | padding-right: 8rpx; |
| | | flex: 1; |
| | | overflow: hidden; |
| | | padding-right: 8rpx; |
| | | } |
| | | |
| | | .message-item { |
| | | display: flex; |
| | | align-items: center; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .message-item:last-child { |
| | | margin-bottom: 0; |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .message-item-round { |
| | | width: 12rpx; |
| | | height: 12rpx; |
| | | border-radius: 50%; |
| | | background-color: #000000; |
| | | width: 12rpx; |
| | | height: 12rpx; |
| | | border-radius: 50%; |
| | | background-color: #000000; |
| | | } |
| | | |
| | | .message-item-text { |
| | | flex: 1; |
| | | padding: 0 16rpx; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | flex: 1; |
| | | padding: 0 16rpx; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .message-item-time { |
| | | color: rgba(0, 0, 0, 0.5); |
| | | color: rgba(0, 0, 0, 0.5); |
| | | } |
| | | |
| | | .resources { |
| | | background-color: #ffffff; |
| | | margin-top: 16rpx; |
| | | padding: 16rpx; |
| | | background-color: #ffffff; |
| | | margin-top: 16rpx; |
| | | padding: 16rpx; |
| | | } |
| | | |
| | | .item-resources { |
| | | display: flex; |
| | | overflow-x: auto; |
| | | margin: 0 -12rpx; |
| | | display: flex; |
| | | overflow-x: auto; |
| | | margin: 0 -12rpx; |
| | | } |
| | | |
| | | .item-resources-item-bg { |
| | | min-width: 33%; |
| | | max-width: 33%; |
| | | overflow: hidden; |
| | | min-width: 33%; |
| | | max-width: 33%; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .item-resources-item { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | padding: 32rpx 0 16rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | padding: 32rpx 0 16rpx; |
| | | } |
| | | |
| | | .item-resources-num { |
| | | font-size: 24rpx; |
| | | padding: 8rpx 0; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | width: 100%; |
| | | text-align: center; |
| | | font-size: 24rpx; |
| | | padding: 8rpx 0; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | width: 100%; |
| | | text-align: center; |
| | | } |
| | | |
| | | .item-resources-title { |
| | | font-size: 24rpx; |
| | | margin-bottom: 12rpx; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | width: 100%; |
| | | text-align: center; |
| | | font-size: 24rpx; |
| | | margin-bottom: 12rpx; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | width: 100%; |
| | | text-align: center; |
| | | } |
| | | |
| | | .item-resources-image { |
| | | height: 80rpx; |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | width: 80rpx; |
| | | } |
| | | |
| | | .item-resources-btn { |
| | | font-size: 24rpx; |
| | | padding: 8rpx; |
| | | border: 1rpx solid; |
| | | border-radius: 21rpx; |
| | | line-height: 24rpx; |
| | | font-size: 24rpx; |
| | | padding: 8rpx; |
| | | border: 1rpx solid; |
| | | border-radius: 21rpx; |
| | | line-height: 24rpx; |
| | | } |
| | | |
| | | .itemTitle { |
| | | display: flex; |
| | | align-items: center; |
| | | color: var(--main-color); |
| | | font-weight: 600; |
| | | display: flex; |
| | | align-items: center; |
| | | color: var(--main-color); |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .itemTitle-image { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | margin-right: 16rpx; |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | margin-right: 16rpx; |
| | | } |
| | | |
| | | .item-video { |
| | | height: 132rpx; |
| | | width: 184rpx; |
| | | border-radius: 4rpx; |
| | | height: 132rpx; |
| | | width: 184rpx; |
| | | border-radius: 4rpx; |
| | | } |
| | | |
| | | .item-cell-group { |
| | | background-color: #ffffff; |
| | | margin-top: 16rpx; |
| | | padding: 16rpx 16rpx 0; |
| | | background-color: #ffffff; |
| | | margin-top: 16rpx; |
| | | padding: 16rpx 16rpx 0; |
| | | } |
| | | |
| | | .item-cell-video { |
| | | display: flex; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .item-cell { |
| | | padding: 24rpx 0; |
| | | border-bottom: 2rpx solid rgba(0, 0, 0, 0.03); |
| | | padding: 24rpx 0; |
| | | border-bottom: 2rpx solid rgba(0, 0, 0, 0.03); |
| | | } |
| | | |
| | | .item-cell:last-child { |
| | | border: none; |
| | | border: none; |
| | | } |
| | | |
| | | .item-cell-content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | flex: 1; |
| | | padding-right: 66rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | flex: 1; |
| | | padding-right: 66rpx; |
| | | } |
| | | |
| | | .item-cell-text { |
| | | margin-top: 24rpx; |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | color: #c8c9cc; |
| | | display: flex; |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | color: #c8c9cc; |
| | | display: flex; |
| | | } |
| | | |
| | | .van-cell-group--inset { |
| | | margin: 0 !important; |
| | | border-radius: 8rpx !important; |
| | | margin: 0 !important; |
| | | border-radius: 8rpx !important; |
| | | } |
| | | |
| | | .popup-scroll { |
| | | height: 800rpx; |
| | | width: 600rpx; |
| | | padding: 24rpx; |
| | | background-color: #ffffff; |
| | | height: 800rpx; |
| | | width: 600rpx; |
| | | padding: 24rpx; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .popup-button { |
| | | padding: 0 64rpx 24rpx; |
| | | padding: 0 64rpx 24rpx; |
| | | } |
| | | |
| | | .popup-button-no { |
| | | font-size: 28rpx; |
| | | text-align: center; |
| | | padding: 24rpx 0 0; |
| | | text-decoration: underline; |
| | | font-size: 28rpx; |
| | | text-align: center; |
| | | padding: 24rpx 0 0; |
| | | text-decoration: underline; |
| | | } |
| | | |
| | | .homePage-popupMsg { |
| | | padding: 32rpx; |
| | | padding: 32rpx; |
| | | } |
| | | |
| | | .homePage-popupMsg-realNamePng { |
| | | width: 340rpx; |
| | | height: 300rpx; |
| | | position: relative; |
| | | left: 50%; |
| | | margin-left: -170rpx; |
| | | width: 340rpx; |
| | | height: 300rpx; |
| | | position: relative; |
| | | left: 50%; |
| | | margin-left: -170rpx; |
| | | } |
| | | |
| | | .homePage-popupMsg-content-item { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 16rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | |
| | | .homePage-popupMsg-content-item:last-child { |
| | | margin-bottom: 0; |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .homePage-popupMsg-content-itemImg { |
| | | width: 100rpx; |
| | | height: 100rpx; |
| | | width: 100rpx; |
| | | height: 100rpx; |
| | | } |
| | | |
| | | .homePage-popupMsg-content-itemTitle { |
| | | flex: 1; |
| | | padding-left: 16rpx; |
| | | flex: 1; |
| | | padding-left: 16rpx; |
| | | } |
| | | |
| | | .homePage-popupMsg-subTitle { |
| | | margin-bottom: 32rpx; |
| | | margin-bottom: 32rpx; |
| | | } |
| | | |
| | | .homePage-popupMsg-button { |
| | | padding: 32rpx 0; |
| | | margin: 0 32rpx; |
| | | border-top: 2rpx solid var(--border-color); |
| | | } |
| | | padding: 32rpx 0; |
| | | margin: 0 32rpx; |
| | | border-top: 2rpx solid var(--border-color); |
| | | } |
| | |
| | | <!--pages/login/index.wxml--> |
| | | <view class="noLogin"> |
| | | <view class="noLogin-content"> |
| | | <image class="noLogin-image" src="{{ imgUrl }}me-center.png" /> |
| | | <image class="noLogin-image" src="./../../img/me-center.png" /> |
| | | <view>请先登录账号</view> |
| | | </view> |
| | | <van-button bind:click="handleGetUserInfo" block type="primary">登录</van-button> |
| | |
| | | |
| | | // 获取用户信息 |
| | | function getUserInfoApi() { |
| | | return $$.request({ url: 'paUser/personal', type: 'get', service: 'cust' }); |
| | | return $$.request({ |
| | | url: 'paUser/personal', |
| | | type: 'get', |
| | | service: 'cust' |
| | | }); |
| | | } |
| | | |
| | | Page({ |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, // icon图片地址 |
| | | userInfo: {}, // 用户信息 |
| | | }, |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, // icon图片地址 |
| | | userInfo: {}, // 用户信息 |
| | | }, |
| | | |
| | | // 点击完善资料 |
| | | handleGo() { |
| | | let visible = this.data.userInfo.realStatus === '1'; |
| | | wx.navigateTo({ url: visible ? '../../pages/perfectInformation/index?type=improvedata' : '../../pages/perfectInformation/index' }); |
| | | }, |
| | | // 点击完善资料 |
| | | handleGo() { |
| | | let visible = this.data.userInfo.realStatus === '1'; |
| | | wx.navigateTo({ |
| | | url: visible ? '../../pages/perfectInformation/index?type=improvedata' : '../../pages/perfectInformation/index' |
| | | }); |
| | | }, |
| | | |
| | | // 退出登录 |
| | | handleLoginOut() { |
| | | $$.showModal({ |
| | | content: '是否确认退出登录?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | $$.loginOutClearData(); |
| | | $$.showToast('已退出登录'); |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | // 退出登录 |
| | | handleLoginOut() { |
| | | $$.showModal({ |
| | | content: '是否确认退出登录?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | $$.loginOutClearData(); |
| | | $$.showToast('已退出登录'); |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 获取用户信息 |
| | | async getUserInfo() { |
| | | $$.showLoading(); |
| | | const res = await getUserInfoApi(); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | this.setData({ userInfo: res.data }); |
| | | } |
| | | }, |
| | | // 获取用户信息 |
| | | async getUserInfo() { |
| | | $$.showLoading(); |
| | | const res = await getUserInfoApi(); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | this.setData({ |
| | | userInfo: res.data |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | onLoad: function () { |
| | | this.getUserInfo(); |
| | | }, |
| | | }); |
| | | onLoad: function () {}, |
| | | |
| | | onShow(options) { |
| | | this.getUserInfo(); |
| | | }, |
| | | }); |
| | |
| | | <!--个人中心--> |
| | | <common-page id="common-page"> |
| | | <view> |
| | | <view bindtap="handleGo" class="header"> |
| | | <view class="header-img"> |
| | | <image class="header-img-image" src="{{ userInfo.avatar }}" wx:if="{{ userInfo.avatar }}" /> |
| | | <van-icon name="user-circle-o" size="100rpx" wx:else /> |
| | | </view> |
| | | <view> |
| | | <view class="header-title">{{ userInfo.trueName || '微信用户'}}</view> |
| | | <view class="header-subTitle"> |
| | | <text>完善资料</text> |
| | | <van-icon name="records" size="28rpx" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="main-card"> |
| | | <van-cell-group inset> |
| | | <van-cell is-link link-type="navigateTo" url="../../pages/messageCenter/index"> |
| | | <view class="main-card-item" slot="title"> |
| | | <image class="main-card-item-image" src="{{ imgUrl }}message.png" /> |
| | | <text>我的消息</text> |
| | | </view> |
| | | <view class="main-msgRound" wx:if="{{ userInfo.msgCount }}">{{ userInfo.msgCount }}</view> |
| | | </van-cell> |
| | | <van-cell |
| | | border="{{ false }}" |
| | | is-link |
| | | link-type="navigateTo" |
| | | url="{{userInfo.realStatus === '1' ? '../../pages/perfectInformation/index?isCheck=true' : '../../pages/realNameAuthentication/index'}}" |
| | | > |
| | | <view class="main-card-item" slot="title"> |
| | | <image class="main-card-item-image" src="{{ imgUrl }}realName.png" /> |
| | | <text>实名认证</text> |
| | | </view> |
| | | <view |
| | | class="main-realName {{ userInfo.realStatus === '1' ? 'main-realName-green' : 'main-realName-red'}}" |
| | | >{{ userInfo.realStatus === '1' ? '已认证' : '未认证' }}</view> |
| | | </van-cell> |
| | | </van-cell-group> |
| | | </view> |
| | | <view class="main-card"> |
| | | <van-cell-group inset> |
| | | <van-cell border="{{ false }}" is-link link-type="navigateTo" url="../../pages/agreement/index"> |
| | | <view> |
| | | <view class="header"> |
| | | <view class="header-img"> |
| | | <image class="header-img-image" src="{{ userInfo.avatar }}" wx:if="{{ userInfo.avatar }}" /> |
| | | <van-icon name="user-circle-o" size="100rpx" wx:else /> |
| | | </view> |
| | | <view> |
| | | <view bindtap="handleGo" class="header-title"> |
| | | <text>{{ userInfo.trueName || '游客'}}</text> |
| | | <image class="main-card-item-edit" src="../../images/me_3.png" mode="" /> |
| | | </view> |
| | | |
| | | <view wx:if="{{realStatus === '1'}}" class="header-subTitle"><text>最近登录时间: |
| | | <time-format format="YYYY年MM月DD日" value="{{ userInfo.loginTime }}" /> |
| | | </text></view> |
| | | </view> |
| | | </view> |
| | | <view class="main-card"> |
| | | <van-cell-group inset> |
| | | <!-- <van-cell wx:if="{{realStatus === '1'}}" is-link link-type="navigateTo" url="../../pages/messageCenter/index"> --> |
| | | <van-cell is-link link-type="navigateTo" url="../../pages/messageCenter/index"> |
| | | <view class="main-card-item" slot="title"> |
| | | <image class="main-card-item-image" src="../../images/me_2.png" /> |
| | | <text>我的消息</text> |
| | | </view> |
| | | <view class="main-msgRound" wx:if="{{ userInfo.msgCount }}">{{ userInfo.msgCount }}</view> |
| | | </van-cell> |
| | | <van-cell is-link link-type="navigateTo" url="{{userInfo.realStatus === '1' ? '../../pages/perfectInformation/index?isCheck=true' : '../../pages/realNameAuthentication/index'}}"> |
| | | <view class="main-card-item" slot="title"> |
| | | <image class="main-card-item-image" src="../../images/me_1.png" /> |
| | | <text>实名认证</text> |
| | | </view> |
| | | <view class="main-realName {{ userInfo.realStatus === 1 ? 'main-realName-green' : 'main-realName-red'}}">{{ userInfo.realStatus === 1 ? '已认证' : '未认证' }}</view> |
| | | </van-cell> |
| | | </van-cell-group> |
| | | </view> |
| | | <view class="main-card"> |
| | | <van-cell-group inset> |
| | | <!-- <van-cell border="{{ false }}" is-link link-type="navigateTo" url="../../pages/agreement/index"> |
| | | <view class="main-card-item" slot="title"> |
| | | <image class="main-card-item-image" src="{{ imgUrl }}agreement.png" /> |
| | | <text>服务协议</text> |
| | | </view> |
| | | </van-cell> |
| | | <!-- TODO:后期需求添加 --> |
| | | <!-- <van-cell is-link border="{{ false }}"> |
| | | </van-cell> --> |
| | | <!-- TODO:后期需求添加 --> |
| | | <!-- <van-cell is-link border="{{ false }}"> |
| | | <view slot="title" class="main-card-item"> |
| | | <image class="main-card-item-image" src="{{ imgUrl }}proposal.png" /> |
| | | <text>反馈建议</text> |
| | | </view> |
| | | <view wx:if="{{ userInfo.opinionCount }}" class="main-msgRound">{{ userInfo.opinionCount }}</view> |
| | | </van-cell>--> |
| | | </van-cell-group> |
| | | </view> |
| | | <view class="loginOut"> |
| | | </van-cell-group> |
| | | </view> |
| | | <!-- <view class="loginOut"> |
| | | <van-button bind:click="handleLoginOut" block type="default">退出登录</van-button> |
| | | </view> |
| | | </view> |
| | | </common-page> |
| | | </view> --> |
| | | </view> |
| | | </common-page> |
| | |
| | | /* pages/me/index.wxss */ |
| | | .header { |
| | | padding: 24rpx var(--padding-my); |
| | | padding: 0 var(--padding-my); |
| | | background-color: var(--main-color); |
| | | display: flex; |
| | | align-items: center; |
| | | color: #ffffff; |
| | | color: #ffffff; |
| | | height: 524rpx; |
| | | justify-content: center; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .header-img { |
| | | margin-right: 32rpx; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .header-img-image { |
| | | height: 100rpx; |
| | | width: 100rpx; |
| | | height: 256rpx; |
| | | width: 256rpx; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .header-title { |
| | | font-size: 36rpx; |
| | | margin-bottom: 16rpx; |
| | | margin-bottom: 16rpx; |
| | | margin-top: 32rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .header-subTitle { |
| | |
| | | } |
| | | |
| | | .main-card-item-image { |
| | | height: 56rpx; |
| | | width: 56rpx; |
| | | height: 30rpx; |
| | | width: 30rpx; |
| | | margin-right: 16rpx; |
| | | } |
| | | |
| | | .main-card-item-edit { |
| | | height: 30rpx; |
| | | width: 30rpx; |
| | | margin-left: 16rpx; |
| | | } |
| | | |
| | | .main-msgRound { |
| | | width: 40rpx; |
| | | height: 40rpx; |
New file |
| | |
| | | // pages/myRegisterFlow/index.js |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | flows: [{ |
| | | title: '提交申请', |
| | | status: '1', |
| | | name1: '线上', |
| | | name2: '2024-7-12 12:00', |
| | | name3: '金融纠纷' |
| | | }, { |
| | | title: '事项办理', |
| | | status: '2', |
| | | name4: '2024-7-12 12:00', |
| | | name5: '白云区新市街司法所' |
| | | }, { |
| | | title: '事项办结', |
| | | status: '3', |
| | | name6: '2024-7-12 12:00', |
| | | name7: '1', |
| | | name7_1: '化解成功' |
| | | } |
| | | // , { |
| | | // title: '事项评价', |
| | | // status: '4', |
| | | // name8: '2024-7-12 12:00', |
| | | // name9: '张孟宇', |
| | | // name10: '4', |
| | | // name11: '工作人员认真负责结案结果符合预期' |
| | | // } |
| | | ] |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | |
| | | }, |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "办理流程", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/myRegisterFlow/index.wxml--> |
| | | <view class="main"> |
| | | <view class="flex" wx:for="{{flows}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index"> |
| | | <view class="left"> |
| | | <view class="icon"> |
| | | <van-icon size='16' name="{{imgUrl}}myRegisterList_5.png" /> |
| | | </view> |
| | | <view wx:if="{{index < 3}}" class="line"></view> |
| | | </view> |
| | | <view class="right" style="margin-bottom:{{index<flows.length-1 ?'32rpx':'0'}}"> |
| | | <view class="list-content-flex margin-top"> |
| | | <view class="list-content-value">{{item.title}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='1'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">反映形式:</view> |
| | | <view class="list-content-value">{{item.name1}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='1'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">申请时间:</view> |
| | | <view class="list-content-value">{{item.name2}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='1'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">纠纷类型:</view> |
| | | <view class="list-content-value">{{item.name3}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='2'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">受理时间:</view> |
| | | <view class="list-content-value">{{item.name4}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='2'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">承办部门:</view> |
| | | <view class="list-content-value">{{item.name5}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='3'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">办结时间:</view> |
| | | <view class="list-content-value">{{item.name6}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='3'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">化解结果:</view> |
| | | <view class="list-content-value {{item.name7==='1'? 'green':item.name7==='2'? 'red':''}}">{{item.name7_1}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='4'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">评价时间:</view> |
| | | <view class="list-content-value">{{item.name8}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='4'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">评价人:</view> |
| | | <view class="list-content-value">{{item.name9}}</view> |
| | | </view> |
| | | <view wx:if="{{item.status==='4'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">评价等级:</view> |
| | | <view class="list-content-value"> |
| | | <van-rate value="{{item.name10}}" size="{{ 18 }}" count="5" color="#ffd21e" void-icon="star" void-color="#C9CDD4" bind:change="onChange" /> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{item.status==='4'}}" class="list-content-flex margin-top"> |
| | | <view class="list-content-title">评语:</view> |
| | | <view class="list-content-value">{{item.name11}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{flows.length < 4}}" class="myRegisterFlow_bind public-color" bindtap="onClick">进展太慢,催一下?</view> |
New file |
| | |
| | | /* pages/myRegisterFlow/index.wxss */ |
| | | .main { |
| | | padding: 32rpx 24rpx; |
| | | } |
| | | |
| | | .flex { |
| | | display: flex; |
| | | gap: 24rpx; |
| | | } |
| | | |
| | | .icon { |
| | | width: 15px; |
| | | height: 15px; |
| | | background: #e8f3ff; |
| | | border-radius: 50%; |
| | | padding: 6rpx; |
| | | } |
| | | |
| | | .line { |
| | | height: 100%; |
| | | border-left: 1px solid #1a6fb8; |
| | | } |
| | | |
| | | .left { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | gap: 8rpx; |
| | | } |
| | | |
| | | .list-content-flex { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | } |
| | | |
| | | .margin-top { |
| | | margin-top: 8rpx; |
| | | } |
| | | |
| | | .list-content-title { |
| | | width: 140rpx; |
| | | font-size: 28rpx; |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | | |
| | | .list-content-value { |
| | | font-size: 28rpx; |
| | | flex: 1; |
| | | } |
| | | |
| | | .green { |
| | | color: #00B42A; |
| | | } |
| | | |
| | | .myRegisterFlow_bind { |
| | | padding: 0 24rpx; |
| | | text-align: center; |
| | | } |
New file |
| | |
| | | // pages/myRegisterList/index.js |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | |
| | | function pageQueryApi(param) { |
| | | return $$.request({ |
| | | url: 'caseInfo/pageCard', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'mediate' |
| | | }) |
| | | } |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | search: { |
| | | page: 1, |
| | | size: 10, |
| | | processStatus: '', |
| | | personType: '1' |
| | | }, |
| | | searchValue: '全部', |
| | | showModal: false, |
| | | processStatusList: [{ |
| | | label: '全部', |
| | | value: '', |
| | | hover: true |
| | | }, { |
| | | label: '待受理', |
| | | value: '1' |
| | | }, { |
| | | label: '办理中', |
| | | value: '2' |
| | | }, { |
| | | label: '已结案', |
| | | value: '3' |
| | | }, { |
| | | label: '不予受理', |
| | | value: '4' |
| | | }], |
| | | dataList: [{ |
| | | title: '', |
| | | show: true |
| | | }, { |
| | | title: '', |
| | | show: false |
| | | }] |
| | | }, |
| | | |
| | | // 查看 |
| | | GoPage(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | wx.navigateTo({ |
| | | url: url, |
| | | }); |
| | | }, |
| | | |
| | | // 关闭筛选框 |
| | | addClosePopup() { |
| | | this.setData({ |
| | | showModal: false |
| | | }) |
| | | }, |
| | | |
| | | // 打开筛选条件 |
| | | searchChange() { |
| | | this.setData({ |
| | | showModal: true |
| | | }) |
| | | }, |
| | | |
| | | searchSelect(e) { |
| | | let idx = e.currentTarget.dataset.index; |
| | | let item = e.currentTarget.dataset.item; |
| | | let searchData = { |
| | | ...this.data.search, |
| | | processStatus: item.value |
| | | } |
| | | this.pageQuery(searchData) |
| | | this.setData({ |
| | | processStatusList: this.data.processStatusList?.map((item, index) => ({ |
| | | ...item, |
| | | hover: index === idx ? true : false |
| | | })), |
| | | searchValue: item.label |
| | | }) |
| | | }, |
| | | |
| | | // 切换tab |
| | | threeTagChange(e) { |
| | | value = e.detail; |
| | | this.setData({ |
| | | search: { |
| | | ...this.data.search, |
| | | personType: value, |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 折叠列表 |
| | | changeShow(e) { |
| | | let idx = e.currentTarget.dataset.index; |
| | | this.data.dataList[idx].show = !this.data.dataList[idx].show; |
| | | this.setData({ |
| | | dataList: this.data.dataList |
| | | }) |
| | | }, |
| | | |
| | | async pageQuery(params, type) { |
| | | $$.showLoading(); |
| | | const res = await pageQueryApi(params); |
| | | $$.hideLoading(); |
| | | if (this.data.loading) { |
| | | this.setData({ |
| | | loading: false |
| | | }); |
| | | } |
| | | if (res.type) { |
| | | if (params.page === 1) { |
| | | this.data.data = res.data.content || []; |
| | | } else { |
| | | this.data.data = this.data.data.concat(res.data.content || []); |
| | | } |
| | | this.setData({ |
| | | search: params, |
| | | data: this.data.data, |
| | | total: res.data.totalElements || 0 |
| | | }); |
| | | if (type === 'onPullDownRefresh') { |
| | | $$.showToast({ |
| | | title: '已是最新记录', |
| | | duration: 1000 |
| | | }); |
| | | wx.stopPullDownRefresh(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | this.pageQuery(this.data.search) |
| | | }, |
| | | |
| | | |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "进度查询", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/myRegisterList/index.wxml--> |
| | | <view class="three-tag"> |
| | | <van-tabs bind:click="threeTagChange" active="{{search.personType}}"> |
| | | <van-tab title="我是申请方" name="1"></van-tab> |
| | | <van-tab title="我是被申请方" name="2"></van-tab> |
| | | </van-tabs> |
| | | </view> |
| | | <!-- 筛选 --> |
| | | <view bindtap="searchChange" class="search"> |
| | | <view class="search-title">全部</view> |
| | | <van-icon size='9' name="{{imgUrl}}down.png" /> |
| | | </view> |
| | | |
| | | <view class="list" wx:for="{{dataList}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index"> |
| | | <view style="{{!item.show&&'border-bottom:none'}}" class="list-top"> |
| | | <view>2024年7月12日反映诉求</view> |
| | | <view class="list-top-r"> |
| | | <view class="list-top-r-tag">待受理</view> |
| | | <van-icon wx:if="{{item.show}}" size='16' bindtap="changeShow" data-index="{{ index }}" name="{{imgUrl}}myRegisterList_1.png" /> |
| | | <van-icon wx:else size='16' bindtap="changeShow" data-index="{{ index }}" name="{{imgUrl}}myRegisterList_4.png" /> |
| | | </view> |
| | | </view> |
| | | <view class="list-content" wx:if="{{item.show}}"> |
| | | <view class="list-content-flex"> |
| | | <view class="list-content-title">申请时间</view> |
| | | <view class="list-content-value">2024-7-12 12:00</view> |
| | | </view> |
| | | <view class="list-content-flex margin-top"> |
| | | <view class="list-content-title">申请方</view> |
| | | <view class="list-content-value">李晓明</view> |
| | | </view> |
| | | <view class="list-content-flex margin-top"> |
| | | <view class="list-content-title">被申请方</view> |
| | | <view class="list-content-value">广东好又多贸易有限公司、张菲菲</view> |
| | | </view> |
| | | <view class="list-border"></view> |
| | | <view class="list-detail"> |
| | | <view class="list-detail-l"> |
| | | <van-icon size='16' name="{{imgUrl}}myRegisterList_1.png" /> |
| | | <view class="list-detail-title">事项详情</view> |
| | | </view> |
| | | <view class="list-detail-r">查看</view> |
| | | </view> |
| | | <view class="list-detail"> |
| | | <view class="list-detail-l"> |
| | | <van-icon size='16' name="{{imgUrl}}myRegisterList_2.png" /> |
| | | <view class="list-detail-title">解纷助手</view> |
| | | </view> |
| | | <view class="list-detail-r">查看</view> |
| | | </view> |
| | | <view bindtap="GoPage" data-url="../../pages/myRegisterFlow/index" class="list-detail"> |
| | | <view class="list-detail-l"> |
| | | <van-icon size='16' name="{{imgUrl}}myRegisterList_3.png" /> |
| | | <view class="list-detail-title">办理流程</view> |
| | | </view> |
| | | <view class="list-detail-r">查看</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <van-overlay show="{{ showModal }}" bind:click="addClosePopup"> |
| | | |
| | | </van-overlay> |
| | | |
| | | <view wx:if="{{ showModal }}" class="showModal-search"> |
| | | <view bindtap="searchChange" class="search"> |
| | | <view class="search-title">{{searchValue}}</view> |
| | | <van-icon size='9' name="{{imgUrl}}down.png" /> |
| | | </view> |
| | | <view class="showModal-select"> |
| | | <view class="showModal-select-title">办理进度</view> |
| | | <view bindtap="searchSelect" class="showModal-select-flex" wx:for="{{processStatusList}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index"> |
| | | <view class="showModal-select-flex-text {{item.hover&& 'public-color'}}">{{item.label}}</view> |
| | | <van-icon wx:if="{{item.hover}}" size='15' name="{{imgUrl}}myRegisterList_5.png" /> |
| | | </view> |
| | | </view> |
| | | </view> |
New file |
| | |
| | | /* pages/myRegisterList/index.wxss */ |
| | | .search { |
| | | display: flex; |
| | | background-color: #fff; |
| | | margin: 24rpx; |
| | | padding: 24rpx; |
| | | align-items: center; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | .showModal-search { |
| | | position: absolute; |
| | | top: 96rpx; |
| | | width: 100%; |
| | | z-index: 991; |
| | | } |
| | | |
| | | .showModal-select { |
| | | background-color: #fff; |
| | | margin: 0 24rpx; |
| | | border-radius: 5px; |
| | | padding: 32rpx; |
| | | } |
| | | |
| | | .showModal-select-title { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | | |
| | | .showModal-select-flex { |
| | | display: flex; |
| | | margin-top: 24rpx; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .search-title { |
| | | margin-right: 16rpx; |
| | | } |
| | | |
| | | .three-tag {} |
| | | |
| | | .three-tag .van-tabs__wrap { |
| | | height: 96rpx !important; |
| | | } |
| | | |
| | | .three-tag .van-tabs__nav { |
| | | height: 100%; |
| | | } |
| | | |
| | | .three-tag .van-tabs__scroll--line { |
| | | height: 100%; |
| | | } |
| | | |
| | | .three-tag .van-tab { |
| | | height: 100%; |
| | | line-height: 96rpx !important; |
| | | } |
| | | |
| | | .list { |
| | | background-color: #fff; |
| | | margin: 16rpx 24rpx 0; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .list-top { |
| | | border-bottom: 1px dashed #e5e6eb; |
| | | padding: 24rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | |
| | | .list-top-r { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 10rpx; |
| | | } |
| | | |
| | | .list-top-r-tag { |
| | | background: #eff8ff; |
| | | border-radius: 2px; |
| | | padding: 7rpx 12rpx; |
| | | color: var(--main-color); |
| | | } |
| | | |
| | | .list-content { |
| | | padding: 24rpx; |
| | | } |
| | | |
| | | .list-content-flex { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | gap: 48rpx; |
| | | } |
| | | |
| | | .margin-top { |
| | | margin-top: 16rpx; |
| | | } |
| | | |
| | | .list-content-title { |
| | | width: 120rpx; |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | | |
| | | .list-content-value { |
| | | flex: 1; |
| | | } |
| | | |
| | | .list-border { |
| | | border-bottom: 1px solid #E5E6EB; |
| | | margin-top: 24rpx; |
| | | } |
| | | |
| | | .list-detail { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: #f7f8fa; |
| | | margin-top: 24rpx; |
| | | padding: 16rpx 24rpx; |
| | | } |
| | | |
| | | .list-detail-l { |
| | | display: flex; |
| | | gap: 8rpx; |
| | | } |
| | | |
| | | .list-detail-title { |
| | | font-size: 28rpx; |
| | | } |
| | | |
| | | .list-detail-r { |
| | | color: var(--main-color); |
| | | font-size: 28rpx; |
| | | } |
| | | |
| | | .one-add-person-tip .van-popup--round { |
| | | width: 90%; |
| | | } |
| | | |
| | | .one-add-person-tip .van-popup--center { |
| | | top: 198rpx !important; |
| | | } |
New file |
| | |
| | | // pages/organizeDetail/index.js |
| | | const $$ = require('../../utils/util'); |
| | | |
| | | function getByIdApi(param) { |
| | | return $$.request({ |
| | | url: 'ctUnit/getById', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'cust' |
| | | }) |
| | | } |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | data: {}, |
| | | }, |
| | | |
| | | |
| | | // 获取纠纷案件详情 |
| | | async getById(data) { |
| | | $$.showLoading(); |
| | | const res = await getByIdApi({ |
| | | id: data.id |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let data = res.data || {}; |
| | | this.setData({ |
| | | data |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | this.getById(options); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "调解组织详情", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/ssimDetail/index.wxml--> |
| | | <common-page> |
| | | <view class="card"> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">服务中心名称</view> |
| | | <view>{{ data.unitName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">办公地址</view> |
| | | <view>{{ data.addr || '-' }}</view> |
| | | </view> |
| | | <map longitude="113.2038664" latitude="23.1622136" show-location="false" scale="16" style="width: 100%; height: 280rpx;"></map> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">邮政编码</view> |
| | | <view>{{ data.postalCode || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">联系电话</view> |
| | | <view>{{ data.dutyMobile || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">办公时间</view> |
| | | <view>{{data.workTimeWeek||'-'}}</view> |
| | | <view>{{data.workTimeAm||'-'}}</view> |
| | | <view>{{data.workTimePm||'-'}}</view> |
| | | </view> |
| | | </view> |
| | | </common-page> |
New file |
| | |
| | | /* pages/organizeDetail/index.wxss *//* pages/ssimDetail/index.wxss */ |
| | | .card { |
| | | padding: 24rpx 32rpx; |
| | | background-color: #ffffff; |
| | | border-radius: var(--border-radius-card); |
| | | } |
| | | |
| | | .cell3 { |
| | | margin-bottom: 16rpx; |
| | | } |
| | | |
| | | .cell-title-placeholder { |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | color: rgba(0, 0, 0, 0.5); |
| | | } |
New file |
| | |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | function pageZzQueryApi(param) { |
| | | return $$.request({ |
| | | url: 'ctUnit/pageTjQuery', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'cust' |
| | | }) |
| | | } |
| | | |
| | | Page({ |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | userInfo: {}, |
| | | location: [], // 省市区等地理资源 |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | search: { |
| | | prov: '', |
| | | provName: '', |
| | | city: '', |
| | | cityName: '', |
| | | area: '', |
| | | areaName: '', |
| | | road: '', |
| | | roadName: '', |
| | | keyword: '', |
| | | page: 1, |
| | | size: 10, |
| | | }, // 查询条件 |
| | | data: [], // 数据 |
| | | total: 0, // 总数 |
| | | popup: { |
| | | formtype: '', |
| | | index: 0, |
| | | }, // 下拉弹出框数据 |
| | | }, |
| | | |
| | | // 下拉框选择确认 |
| | | handleConfirmPicker({ |
| | | detail |
| | | }) { |
| | | let type = this.data.popup.type, |
| | | value = detail.detail.value, |
| | | arr = []; |
| | | this.data.popup.visible = false; |
| | | if (type === 'caseCause') { |
| | | arr = ['caseType', 'caseTypeName']; |
| | | arr.forEach((x, t) => { |
| | | this.data.search[x] = value[0][t === 0 ? 'value' : 'label']; |
| | | }); |
| | | } else if (type === 'location') { |
| | | arr = [ |
| | | ['city', 'cityName'], |
| | | ['area', 'areaName'], |
| | | ['road', 'roadName'], |
| | | ]; |
| | | arr.forEach((x, t) => { |
| | | this.data.search[x[0]] = value[t]?.value || ''; |
| | | this.data.search[x[1]] = value[t]?.label || ''; |
| | | }); |
| | | } |
| | | this.setData({ |
| | | popup: this.data.popup, |
| | | search: this.data.search |
| | | }); |
| | | }, |
| | | |
| | | // 多行下拉选择时,省市区选择 |
| | | handleChangeColumns(e) { |
| | | if (this.data.popup.type === 'location') { |
| | | let selectData = $$.changeLocation(e, this.location, this.data.popup.selectData); |
| | | this.setData({ |
| | | popup: { |
| | | ...this.data.popup, |
| | | selectData |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 下拉框选择开启 |
| | | handleShowPopup(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | let selectData = []; |
| | | if (type === 'location') { |
| | | if (this.location.length === 0) { |
| | | return false; |
| | | } |
| | | let selectOption = JSON.parse(JSON.stringify(this.location)); |
| | | let arr = $$.getLocationIndex(this.location, this.data.search); // 计算默认的市区县下标 |
| | | selectData = [{ |
| | | values: selectOption, |
| | | defaultIndex: arr[0] |
| | | }, |
| | | { |
| | | values: selectOption[arr[0]].children, |
| | | defaultIndex: arr[1] |
| | | }, |
| | | { |
| | | values: selectOption[arr[0]].children[arr[1]].children || [], |
| | | defaultIndex: arr[2] |
| | | }, |
| | | ]; |
| | | selectData.forEach((x) => { |
| | | x.values.forEach((y) => { |
| | | delete y.children; |
| | | }); |
| | | }); |
| | | } else { |
| | | let selectOption = this.select[type]; |
| | | selectData = [{ |
| | | values: selectOption, |
| | | defaultIndex: 0 |
| | | }]; |
| | | } |
| | | this.setData({ |
| | | popup: { |
| | | formtype: e.currentTarget.dataset.formtype, |
| | | index: e.currentTarget.dataset.index, |
| | | visible: true, |
| | | title: e.currentTarget.dataset.title, |
| | | type: type, |
| | | selectData: selectData, |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 关闭下拉框选择 |
| | | handleClosePopup() { |
| | | this.data.popup.visible = false; |
| | | this.setData({ |
| | | popup: this.data.popup |
| | | }); |
| | | }, |
| | | |
| | | searchButton() { |
| | | this.pageZzQuery(this.data.search) |
| | | }, |
| | | |
| | | async pageZzQuery(params, type) { |
| | | $$.showLoading(); |
| | | const res = await pageZzQueryApi(params); |
| | | $$.hideLoading(); |
| | | if (this.data.loading) { |
| | | this.setData({ |
| | | loading: false |
| | | }); |
| | | } |
| | | if (res.type) { |
| | | if (params.page === 1) { |
| | | this.data.data = res.data.content || []; |
| | | } else { |
| | | this.data.data = this.data.data.concat(res.data.content || []); |
| | | } |
| | | this.setData({ |
| | | search: params, |
| | | data: this.data.data, |
| | | total: res.data.totalElements || 0 |
| | | }); |
| | | if (type === 'onPullDownRefresh') { |
| | | $$.showToast({ |
| | | title: '已是最新记录', |
| | | duration: 1000 |
| | | }); |
| | | wx.stopPullDownRefresh(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 关闭底部弹窗 |
| | | handleClosePopupMsg() { |
| | | if (this.data.popupMsg.type === 1) { |
| | | this.getUserInfo(this.data.popupMsg.intentionObj); |
| | | } else { |
| | | this.setData({ |
| | | popupMsg: { |
| | | show: false |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 滚动到底部获取案件 |
| | | handlescrolltolower() { |
| | | if (this.data.data.length >= this.data.total) { |
| | | return false; |
| | | } |
| | | if (!this.data.loading) { |
| | | this.data.loading = true; |
| | | this.setData({ |
| | | loading: this.data.loading |
| | | }); |
| | | let submitData = { |
| | | ...this.data.search |
| | | }; |
| | | submitData.page = submitData.page + 1; |
| | | this.pageZzQuery(submitData); |
| | | } |
| | | }, |
| | | |
| | | // 返回首页 |
| | | handleGoHomepage() { |
| | | if (this.data.changeVisible) { |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }); |
| | | return false; |
| | | } |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | }, |
| | | |
| | | // 获取省市区等地理资源 |
| | | async getLocationData() { |
| | | $$.showLoading(); |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.assets}locationSelect.json`, |
| | | type: 'get' |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res) { |
| | | let location = []; |
| | | $$.province.forEach((x) => { |
| | | location.push(res[x][0]); |
| | | }); |
| | | this.location = location; |
| | | } |
| | | }, |
| | | |
| | | // 跳转详情 |
| | | _handleGoPage(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | let id = e.currentTarget.dataset.id; |
| | | wx.navigateTo({ |
| | | url: url + '?id=' + id, |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | this.pageZzQuery(this.data.search) |
| | | this.getLocationData(); |
| | | }, |
| | | |
| | | onShow: function () { |
| | | // this.pageZzQuery(this.data.search); |
| | | }, |
| | | |
| | | onHide: function () {}, |
| | | |
| | | onUnload: function () {}, |
| | | }); |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "调解组织查询", |
| | | "usingComponents": { |
| | | } |
| | | } |
New file |
| | |
| | | <common-page bind:onCancelPicker="handleClosePopup" bind:onChangePicker="handleChangeColumns" bind:onClosePopup="handleClosePopup" bind:onConfirmPicker="handleConfirmPicker" popup="{{ popup }}"> |
| | | <view class="ssimList"> |
| | | <!-- 综治中心查询 --> |
| | | <view class="card"> |
| | | <view class="cell"> |
| | | <view bindtap="handleShowPopup" data-type="location" class="cell-arrow cell-left"> |
| | | <view class="cell-left-l">{{ search.roadName ? search.roadName : '未选择' }}</view> |
| | | <van-icon name="arrow-down" /> |
| | | </view> |
| | | <view style="width:16rpx"></view> |
| | | <view class="cell-right"> |
| | | <van-icon name="search" /> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0;background-color:#f2f3f5" data-key="keyword" placeholder="请输入中心名称" value="{{ search.keyword }}" /> |
| | | <view style="color:#E5E6EB">|</view> |
| | | <view bindtap="searchButton" class="public-color">查询</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 列表 --> |
| | | <van-empty description="暂无数据" wx:if="{{ total === 0 }}" /> |
| | | <view class="ssim-scroll" wx:else> |
| | | <scroll-view bindscrolltolower="handlescrolltolower" scroll-y="true" style="height: 100%;"> |
| | | <view class="card-box" wx:for="{{ data }}" wx:key="index"> |
| | | <view class="card-list" bindtap="_handleGoPage" data-id="{{ item.id }}" data-url="../../pages/organizeDetail/index"> |
| | | <view class="card-title">{{item.unitName}}</view> |
| | | <view class="card-subTitle"><text class="card-subTitle-l">办公地址:</text>{{item.addr}}</view> |
| | | <view class="card-subTitle"><text class="card-subTitle-l">联系电话:</text>{{item.dutyMobile}}</view> |
| | | </view> |
| | | </view> |
| | | <block> |
| | | <van-divider contentPosition="center" custom-style="margin-top: 12px;" wx:if="{{ data.length >= total && data.length !== 0 }}">没有更多了</van-divider> |
| | | <view class="myMediate-scroll-loading" wx:if="{{ loading }}"> |
| | | <van-loading type="spinner" /> |
| | | </view> |
| | | </block> |
| | | </scroll-view> |
| | | </view> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </common-page> |
New file |
| | |
| | | |
| | | @import '../../styles/public_components.wxss'; |
| | | |
| | | .ssimList { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | position: absolute; |
| | | left: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | .card { |
| | | background-color: #ffffff; |
| | | padding: 0 24rpx; |
| | | } |
| | | |
| | | .cell-left { |
| | | display: flex; |
| | | width: 28%; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | background: #f2f3f5; |
| | | padding: 12rpx 16rpx; |
| | | border-radius: 10rpx; |
| | | } |
| | | |
| | | .cell-left-l { |
| | | text-align: right; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | font-size: var(--font-size-md, 14px); |
| | | } |
| | | |
| | | .cell-right { |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | background: #f2f3f5; |
| | | padding: 12rpx 16rpx; |
| | | border-radius: 10rpx; |
| | | font-size: var(--font-size-md, 14px); |
| | | } |
| | | |
| | | .card-box { |
| | | padding: 24rpx 24rpx 0 24rpx; |
| | | } |
| | | |
| | | .card { |
| | | border-radius: 2px; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .card-list { |
| | | border-radius: 2px; |
| | | background-color: #fff; |
| | | padding: 24rpx |
| | | } |
| | | |
| | | .ssim-scroll { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .card-title { |
| | | font-size: 30rpx; |
| | | line-height: 46rpx; |
| | | } |
| | | |
| | | .card-subTitle { |
| | | padding-top: 8rpx; |
| | | } |
| | | |
| | | .card-subTitle-l { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | |
| | | |
| | | // 保存信息 |
| | | function setUserInfoApi(submitData) { |
| | | return $$.request({ url: 'paUser/perfectInfo', type: 'post', submitData, service: 'cust' }); |
| | | return $$.request({ |
| | | url: 'paUser/perfectInfo', |
| | | type: 'post', |
| | | submitData, |
| | | service: 'cust' |
| | | }); |
| | | } |
| | | |
| | | Page({ |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | copySubmitData: {}, // 数据复制 |
| | | isCheck: false, |
| | | data: { |
| | | submitData: { |
| | | trueName: '', |
| | | mobile: '', |
| | | sex: '09_00003-1', |
| | | sexName: '男', |
| | | idcardType: '09_00015-1', |
| | | idcardTypeName: '身份证', |
| | | idcard: '', |
| | | prov: '', |
| | | provName: '', |
| | | city: '', |
| | | cityName: '', |
| | | area: '', |
| | | areaName: '', |
| | | road: '', |
| | | roadName: '', |
| | | village: '', |
| | | villageName: '', |
| | | addr: '', |
| | | }, |
| | | popup: {}, // 下拉弹出框数据 |
| | | isCheck: false, // 是否只是查看 |
| | | isImproveData: false, // 是否是完善资料进入,则不显示身份证的修改 |
| | | }, |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | copySubmitData: {}, // 数据复制 |
| | | isCheck: false, |
| | | data: { |
| | | submitData: { |
| | | trueName: '', |
| | | mobile: '', |
| | | sex: '09_00003-1', |
| | | sexName: '男', |
| | | idcardType: '09_00015-1', |
| | | idcardTypeName: '身份证', |
| | | idcard: '', |
| | | prov: '', |
| | | provName: '', |
| | | city: '', |
| | | cityName: '', |
| | | area: '', |
| | | areaName: '', |
| | | road: '', |
| | | roadName: '', |
| | | village: '', |
| | | villageName: '', |
| | | addr: '', |
| | | }, |
| | | popup: {}, // 下拉弹出框数据 |
| | | isCheck: false, // 是否只是查看 |
| | | isImproveData: false, // 是否是完善资料进入,则不显示身份证的修改 |
| | | }, |
| | | |
| | | // 展示弹出层 |
| | | handleShowPopup(e) { |
| | | this.setData({ popup: e.detail }); |
| | | }, |
| | | // 展示弹出层 |
| | | handleShowPopup(e) { |
| | | this.setData({ |
| | | popup: e.detail |
| | | }); |
| | | }, |
| | | |
| | | // 关闭弹出层 |
| | | handleClosePopup() { |
| | | this.data.popup.visible = false; |
| | | this.setData({ popup: this.data.popup }); |
| | | }, |
| | | // 关闭弹出层 |
| | | handleClosePopup() { |
| | | this.data.popup.visible = false; |
| | | this.setData({ |
| | | popup: this.data.popup |
| | | }); |
| | | }, |
| | | |
| | | // 下拉框确认选择 |
| | | handleConfirmPicker({ detail }) { |
| | | let type = this.data.popup.type; |
| | | let value = detail.detail.value; |
| | | let arr = []; |
| | | this.data.popup.visible = false; |
| | | if (type === 'location') { |
| | | arr = [ |
| | | ['prov', 'provName'], |
| | | ['city', 'cityName'], |
| | | ['area', 'areaName'], |
| | | ['road', 'roadName'], |
| | | ['village', 'villageName'], |
| | | ]; |
| | | arr.forEach((x, t) => { |
| | | this.data.submitData[x[0]] = value[t]?.value || ''; |
| | | this.data.submitData[x[1]] = value[t]?.label || ''; |
| | | }); |
| | | } else { |
| | | if (type === 'cardType') { |
| | | arr = ['idcardType', 'idcardTypeName']; |
| | | } else if (type === 'sex') { |
| | | arr = ['sex', 'sexName']; |
| | | } |
| | | arr.forEach((x, t) => { |
| | | this.data.submitData[x] = value[t === 0 ? 'value' : 'label']; |
| | | }); |
| | | } |
| | | this.setData({ submitData: this.data.submitData, popup: this.data.popup }); |
| | | }, |
| | | // 下拉框确认选择 |
| | | handleConfirmPicker({ |
| | | detail |
| | | }) { |
| | | let type = this.data.popup.type; |
| | | let value = detail.detail.value; |
| | | let arr = []; |
| | | this.data.popup.visible = false; |
| | | if (type === 'location') { |
| | | arr = [ |
| | | ['prov', 'provName'], |
| | | ['city', 'cityName'], |
| | | ['area', 'areaName'], |
| | | ['road', 'roadName'], |
| | | ['village', 'villageName'], |
| | | ]; |
| | | arr.forEach((x, t) => { |
| | | this.data.submitData[x[0]] = value[t]?.value || ''; |
| | | this.data.submitData[x[1]] = value[t]?.label || ''; |
| | | }); |
| | | } else { |
| | | if (type === 'cardType') { |
| | | arr = ['idcardType', 'idcardTypeName']; |
| | | } else if (type === 'sex') { |
| | | arr = ['sex', 'sexName']; |
| | | } |
| | | arr.forEach((x, t) => { |
| | | this.data.submitData[x] = value[t === 0 ? 'value' : 'label']; |
| | | }); |
| | | } |
| | | this.setData({ |
| | | submitData: this.data.submitData, |
| | | popup: this.data.popup |
| | | }); |
| | | }, |
| | | |
| | | // form的change |
| | | handleChange(e) { |
| | | const { key, value } = e.detail; |
| | | this.data.submitData[key] = value; |
| | | this.setData({ submitData: this.data.submitData }); |
| | | }, |
| | | // form的change |
| | | handleChange(e) { |
| | | const { |
| | | key, |
| | | value |
| | | } = e.detail; |
| | | this.data.submitData[key] = value; |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | }, |
| | | |
| | | // 修改picker的列时触发 |
| | | handleChangeColumns(e) { |
| | | if (this.data.popup.type === 'location') { |
| | | let selectData = $$.changeLocation(e, this.selectComponent('#personal-data-dom').location, this.data.popup.selectData); |
| | | this.setData({ popup: { ...this.data.popup, selectData } }); |
| | | } |
| | | }, |
| | | // 修改picker的列时触发 |
| | | handleChangeColumns(e) { |
| | | if (this.data.popup.type === 'location') { |
| | | let selectData = $$.changeLocation(e, this.selectComponent('#personal-data-dom').location, this.data.popup.selectData); |
| | | this.setData({ |
| | | popup: { |
| | | ...this.data.popup, |
| | | selectData |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 验证 |
| | | checkSubmitData() { |
| | | if (this.data.submitData.mobile && !$$.mobileRegExp(this.data.submitData.mobile)) { |
| | | $$.showToast({ title: '请输入正确的手机号码' }); |
| | | return false; |
| | | } |
| | | let userInfo = wx.getStorageSync('userInfo'); |
| | | let that = this; |
| | | if (userInfo.realStatus === '1' && this.data.submitData.trueName !== this.copySubmitData.trueName) { |
| | | $$.showModal({ |
| | | content: '您修改了姓名,修改后需重新实名认证,是否继续操作?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | userInfo.realStatus = '99'; |
| | | wx.setStorageSync('userInfo', userInfo); |
| | | that.handleSave(); |
| | | } |
| | | }, |
| | | }); |
| | | return false; |
| | | } |
| | | if (userInfo.realStatus === '1' && this.data.submitData.idcard !== this.copySubmitData.idcard) { |
| | | $$.showModal({ |
| | | content: '您修改了身份证号码,修改后需重新实名认证,是否继续操作?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | userInfo.realStatus = '99'; |
| | | wx.setStorageSync('userInfo', userInfo); |
| | | that.handleSave(); |
| | | } |
| | | }, |
| | | }); |
| | | return false; |
| | | } |
| | | that.handleSave(); |
| | | }, |
| | | // 验证 |
| | | checkSubmitData() { |
| | | if (this.data.submitData.mobile && !$$.mobileRegExp(this.data.submitData.mobile)) { |
| | | $$.showToast({ |
| | | title: '请输入正确的手机号码' |
| | | }); |
| | | return false; |
| | | } |
| | | let userInfo = wx.getStorageSync('userInfo'); |
| | | let that = this; |
| | | if (userInfo.realStatus === '1' && this.data.submitData.trueName !== this.copySubmitData.trueName) { |
| | | $$.showModal({ |
| | | content: '您修改了姓名,修改后需重新实名认证,是否继续操作?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | userInfo.realStatus = '99'; |
| | | wx.setStorageSync('userInfo', userInfo); |
| | | that.handleSave(); |
| | | } |
| | | }, |
| | | }); |
| | | return false; |
| | | } |
| | | if (userInfo.realStatus === '1' && this.data.submitData.idcard !== this.copySubmitData.idcard) { |
| | | $$.showModal({ |
| | | content: '您修改了身份证号码,修改后需重新实名认证,是否继续操作?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | userInfo.realStatus = '99'; |
| | | wx.setStorageSync('userInfo', userInfo); |
| | | that.handleSave(); |
| | | } |
| | | }, |
| | | }); |
| | | return false; |
| | | } |
| | | that.handleSave(); |
| | | }, |
| | | |
| | | // 保存 |
| | | async handleSave() { |
| | | $$.showLoading(); |
| | | const res = await setUserInfoApi(this.data.submitData); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | $$.showToast({ title: '操作成功', icon: 'success' }); |
| | | let realStatus = wx.getStorageSync('userInfo')?.realStatus; |
| | | if (realStatus === '99') { |
| | | $$.showModal({ |
| | | title: '实名认证提醒', |
| | | content: '检测到您尚未完成实名认证,认证后您将享受到更加完善的调解服务,是否现在前往认证?', |
| | | cancelText: '暂不认证', |
| | | confirmText: '前往认证', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | wx.navigateTo({ |
| | | url: '../../pages/realNameAuthentication/index?backNum=2', |
| | | }); |
| | | } else { |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | } else { |
| | | await $$.sleep(); |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | // 保存 |
| | | async handleSave() { |
| | | $$.showLoading(); |
| | | const res = await setUserInfoApi(this.data.submitData); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | $$.showToast({ |
| | | title: '操作成功', |
| | | icon: 'success' |
| | | }); |
| | | await $$.sleep(); |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | success: function (res) { |
| | | // 返回页面刷新接口 |
| | | wx.emitEvent('getUserInfo', {}); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 获取个人信息 |
| | | getUserInfo(e) { |
| | | let data = e.detail || {}; |
| | | let keys = Object.keys(this.data.submitData); |
| | | keys.forEach((x) => { |
| | | if (data[x]) { |
| | | this.data.submitData[x] = data[x]; |
| | | } |
| | | }); |
| | | if (this.isCheck && this.data.submitData.idcardType === '09_00015-1') { |
| | | this.data.submitData.idcard = `${this.data.submitData.idcard?.substring(0, 6)}********${this.data.submitData.idcard?.substring(14)}`; |
| | | } |
| | | this.setData({ submitData: this.data.submitData }); |
| | | this.copySubmitData = Object.assign({}, this.data.submitData); |
| | | }, |
| | | // 获取个人信息 |
| | | getUserInfo(e) { |
| | | let data = e.detail || {}; |
| | | let keys = Object.keys(this.data.submitData); |
| | | keys.forEach((x) => { |
| | | if (data[x]) { |
| | | this.data.submitData[x] = data[x]; |
| | | } |
| | | }); |
| | | if (this.isCheck && this.data.submitData.idcardType === '09_00015-1') { |
| | | this.data.submitData.idcard = `${this.data.submitData.idcard?.substring(0, 6)}********${this.data.submitData.idcard?.substring(14)}`; |
| | | } |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | this.copySubmitData = Object.assign({}, this.data.submitData); |
| | | }, |
| | | |
| | | // 获取手机号码 |
| | | async handleGetPhoneNumber(e) { |
| | | let phone = await this.selectComponent('#common-page').handleGetPhoneNumber(e.detail); |
| | | this.data.submitData.mobile = phone; |
| | | this.setData({ submitData: this.data.submitData }); |
| | | }, |
| | | // 获取手机号码 |
| | | async handleGetPhoneNumber(e) { |
| | | let phone = await this.selectComponent('#common-page').handleGetPhoneNumber(e.detail); |
| | | this.data.submitData.mobile = phone; |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | this.setData({ isCheck: !!options.isCheck, isImproveData: !!options.type }); |
| | | this.isCheck = !!options.isCheck; |
| | | }, |
| | | }); |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | this.setData({ |
| | | isCheck: !!options.isCheck, |
| | | isImproveData: !!options.type |
| | | }); |
| | | this.isCheck = !!options.isCheck; |
| | | }, |
| | | }); |
| | |
| | | { |
| | | "navigationBarTitleText": "完善资料", |
| | | "navigationBarTitleText": "个人信息", |
| | | "usingComponents": { |
| | | "personal-data-dom": "../../components/personal-data-dom/index" |
| | | } |
| | |
| | | isImproveData="{{ isImproveData }}" |
| | | /> |
| | | <view class="submit" wx:if="{{ !isCheck }}"> |
| | | <van-button bind:click="handleSave" block type="primary">保存</van-button> |
| | | <van-button bind:click="handleSave" block type="primary">更新</van-button> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </common-page> |
| | |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | right: 0; |
| | | background: #fff; |
| | | padding: var(--padding-my); |
| | | } |
| | |
| | | }); |
| | | } |
| | | |
| | | // 获取案件详情 |
| | | function getCaseDetailApi(submitData) { |
| | | function caseRegisterSaveApi(submitData) { |
| | | return $$.request({ |
| | | url: 'paCaseInfo/getCaseInfo?id=' + submitData, |
| | | type: 'get', |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | | |
| | | // 获取保存的草稿案件 |
| | | function getDraftCaseApi(type) { |
| | | return $$.request({ |
| | | url: 'paCaseInfo/listByInputUserAndStatus?inputStatus=' + type, |
| | | type: 'get', |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | | |
| | | // 保存草稿 or 保存案件 |
| | | function submitCaseApi(submitData) { |
| | | return $$.request({ |
| | | url: 'paCaseInfo/applyCase', |
| | | url: 'caseInfo/caseRegister', |
| | | type: 'post', |
| | | submitData, |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | | |
| | | // 检查请求中的风险 |
| | | function checkCaseClaimRiskApi(submitData) { |
| | | return $$.request({ |
| | | url: 'guide/checkCaseClaimRisk', |
| | | type: 'post', |
| | | submitData, |
| | | v1: true, |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | | |
| | | // 获取历史填写过的人员数据 |
| | | function getPersonHistoryApi() { |
| | | return $$.request({ |
| | | url: 'paCaseInfo/pickUser', |
| | | type: 'get', |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | | |
| | | //类案推荐缓存 |
| | | function getCaseApi(submitData) { |
| | | return $$.request({ |
| | | url: 'guide/cacheLatjCaseGuide', |
| | | submitData, |
| | | type: 'get', |
| | | v1: true, |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | | |
| | | //案件特征 |
| | | function getFeatureApi(submitData) { |
| | | return $$.request({ |
| | | url: 'guide/cacheCaseFeature', |
| | | submitData, |
| | | type: 'get', |
| | | v1: true, |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | | |
| | | //调解策略及争议焦点 |
| | | function getCacheOpenAiCaseGuideList(submitData) { |
| | | return $$.request({ |
| | | url: 'guide/cacheOpenAiCaseGuideList', |
| | | submitData, |
| | | type: 'get', |
| | | v1: true, |
| | | service: 'mediate' |
| | | }); |
| | | } |
| | |
| | | location: [], // 省市区等地理资源 |
| | | select: {}, // 下拉框数据 |
| | | goToMaterialSave: false, // 避免跳转到材料上传页面重复保存草稿 |
| | | agreementMsg: '', // 服务协议 |
| | | data: { |
| | | stepText: 5, //用户须知倒计时5秒 |
| | | timer: null, // 用于存储定时器的引用 |
| | | popupVisibleText: false, //是否滚动到底部 |
| | | imgUrl: $$.url.img, |
| | | steps: [{ |
| | | title: '填写申请', |
| | | icon: '', |
| | | title: '填写人员', |
| | | number: '1', |
| | | activeIcon: 'steps-register-1-active.png' |
| | | }, |
| | | { |
| | | title: '预览申请', |
| | | icon: 'steps-register-2.png', |
| | | title: '描述纠纷', |
| | | number: '2', |
| | | activeIcon: 'steps-register-2-active.png' |
| | | }, |
| | | { |
| | | title: '提交申请', |
| | | icon: 'steps-register-3.png', |
| | | number: '3', |
| | | activeIcon: 'steps-register-3-active.png' |
| | | }, |
| | | ], |
| | | saveStatus: false, //未提交,已提交 |
| | | oneList: [], |
| | | titleShow: { |
| | | '09_01001-1': ['自然人', '姓名', '真实姓名'], |
| | | '09_01001-2': ['法人', '企业名称', '企业全名', '法定代表人姓名'], |
| | |
| | | }, // 用于判断显示的输入框标题 |
| | | stepsActive: 0, // 步骤条当前下标 |
| | | submitData: { |
| | | caseDes: '', |
| | | occurTime: new Date().getTime(), |
| | | occurTimeName: $$.moment(new Date().getTime()).format('YYYY-MM-DD'), |
| | | caseType: '', |
| | | caseTypeName: '', |
| | | caseClaim: '', |
| | | prov: '', |
| | | provName: '', |
| | | city: '', |
| | | cityName: '', |
| | | area: '', |
| | | areaName: '', |
| | | road: '', |
| | | roadName: '', |
| | | village: '', |
| | | villageName: '', |
| | | addr: '', |
| | | wantUserId: '', |
| | | wantUserName: '', |
| | | wantUnitId: '', |
| | | wantUnitName: '', |
| | | lat: '', |
| | | lng: '', |
| | | peopleNum: '', |
| | | amount: '', |
| | | caseDes: '', |
| | | caseClaim: '', |
| | | plaintiffList: [], |
| | | defendantList: [], |
| | | }, // 表单数据 |
| | | addPersonData: {}, //添加的当事人 |
| | | materialNum: 0, // 纠纷材料总数量 |
| | | userInfoVisible: false, // 是否采用个人信息更新申请人信息 |
| | | timePicker: false, //时间选择展示 |
| | | maxDate: new Date().getTime(), |
| | | popup: { |
| | | formtype: '', // 控制在纠纷信息 or 申请人信息 or 被申请人添加数据 |
| | | index: 0, // 如为申请人信息 or 被申请人确认下拉选择此参数为下标 |
| | |
| | | data: [], |
| | | activeIndex: null |
| | | }, // 选择人员 |
| | | caseCause: [{ |
| | | value: '22_00039-0005', |
| | | label: '家庭婚姻纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0004', |
| | | label: '邻里纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0019', |
| | | label: '房屋宅基地纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0002', |
| | | label: '合同纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0020', |
| | | label: '生产经营纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0013', |
| | | label: '损害赔偿纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0015', |
| | | label: '山林土地纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0016', |
| | | label: '征地纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0021', |
| | | label: '环境污染纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0001', |
| | | label: '劳动争议纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0006', |
| | | label: '道路交通事故纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0007', |
| | | label: '医疗纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0022', |
| | | label: '物业管理纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0018', |
| | | label: '消费纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0023', |
| | | label: '旅游纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0008', |
| | | label: '知识产权纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0024', |
| | | label: '互联网纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0003', |
| | | label: '借贷纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0009', |
| | | label: '所有权纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0010', |
| | | label: '继承纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0011', |
| | | label: '人格权纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0012', |
| | | label: '股权转让纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0014', |
| | | label: '建设用地使用权纠纷', |
| | | }, |
| | | { |
| | | value: '22_00039-0017', |
| | | label: '其他纠纷', |
| | | }, |
| | | ], |
| | | threeAvtice: '1', |
| | | caseDesNum: 0, //事项概况字数 |
| | | caseClaimNum: 0, //事项申请字数 |
| | | }, |
| | | |
| | | //类案推荐展开隐藏 |
| | | _case() { |
| | | this.setData({ |
| | | showDetail: !this.data.showDetail, |
| | | // 获取服务协议 |
| | | async getAgreement() { |
| | | var that = this; |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.txt}agree.txt`, |
| | | type: 'get' |
| | | }); |
| | | if (res) { |
| | | that.data.popupVisible = true; |
| | | that.setData({ |
| | | popupVisible: true, |
| | | }); |
| | | this.startCountdown(); // 启动倒计时 |
| | | } |
| | | }, |
| | | |
| | | //须知弹窗倒计时 |
| | | startCountdown: function () { |
| | | let that = this; |
| | | that.setData({ |
| | | timer: setInterval(function () { |
| | | if (that.data.stepText > 0) { |
| | | that.data.stepText--; |
| | | that.setData({ |
| | | stepText: that.data.stepText |
| | | }); |
| | | } else { |
| | | clearInterval(that.data.timer); // 倒计时结束,清除定时器 |
| | | // 在这里执行销毁操作,比如隐藏或删除倒计时组件 |
| | | } |
| | | }, 1000) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | // 身份证ocr |
| | | handleOCR(e) { |
| | | let that = this; |
| | | wx.chooseMedia({ |
| | | count: 1, |
| | | mediaType: ['image'], |
| | | success(res2) { |
| | | const tempFiles = res2.tempFiles[0]; |
| | | $$.showLoading(); |
| | | wx.uploadFile({ |
| | | url: `${$$.baseUrl}${$$.url.sys}/api/v1/fileInfo/wecatRecognition`, |
| | | filePath: tempFiles.tempFilePath, |
| | | name: 'file', |
| | | header: { |
| | | Authorization: app.globalData.token |
| | | }, |
| | | complete(res3) { |
| | | $$.hideLoading(); |
| | | if (res3.errMsg === 'uploadFile:ok') { |
| | | let { |
| | | code, |
| | | data |
| | | } = JSON.parse(res3.data); |
| | | if (code == -1) { |
| | | $$.errorModal({ |
| | | content: '识别失败' |
| | | }); |
| | | return; |
| | | } |
| | | let item = that.data.popupMsg.data; |
| | | that.data.popupMsg.data.certiNo = data?.ocrResult.certificateNumber; |
| | | that.data.popupMsg.data[item.perClass === '09_01001-1' ? 'trueName' : 'deputy'] = data?.ocrResult.trueName; |
| | | that.setData({ |
| | | popupMsg: that.data.popupMsg |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 表单修改 |
| | | handleChange(e) { |
| | | let formtype = e.currentTarget.dataset.formtype, |
| | | key = e.currentTarget.dataset.key, |
| | | let key = e.currentTarget.dataset.key, |
| | | value = e.detail; |
| | | if (formtype === 'popupMsg') { |
| | | // 修改申请人and被申请人的form |
| | | this.data.popupMsg.data[key] = value; |
| | | } else { |
| | | this.data.submitData[key] = value; |
| | | } |
| | | this.data.submitData[key] = value; |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | if (key === 'caseDes' || key === 'caseClaim') { |
| | | this.setData({ |
| | | [key + 'Num']: value.length |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 删除意向调解信息 |
| | | handleDeleteWant() { |
| | | let that = this; |
| | | $$.showModal({ |
| | | content: '确定删除意向调解信息吗?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | let obj = { |
| | | wantUserId: '', |
| | | wantUserName: '', |
| | | wantUnitId: '', |
| | | wantUnitName: '', |
| | | }; |
| | | that.setData({ |
| | | submitData: { |
| | | ...that.data.submitData, |
| | | ...obj |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | threeTagChange(e) { |
| | | value = e.detail; |
| | | this.setData({ |
| | | threeAvtice: value |
| | | }); |
| | | }, |
| | | |
| | | // 下拉框选择确认 |
| | | handleConfirmPicker({ |
| | | detail |
| | |
| | | }); |
| | | } else if (type === 'location') { |
| | | arr = [ |
| | | ['prov', 'provName'], |
| | | ['city', 'cityName'], |
| | | ['area', 'areaName'], |
| | | ['road', 'roadName'], |
| | | ['village', 'villageName'], |
| | | ['road', 'roadName'] |
| | | ]; |
| | | arr.forEach((x, t) => { |
| | | this.data.submitData[x[0]] = value[t]?.value || ''; |
| | |
| | | }); |
| | | }, |
| | | |
| | | // 多行下拉选择时,省市区选择 |
| | | handleChangeColumns(e) { |
| | | if (this.data.popup.type === 'location') { |
| | | let selectData = $$.changeLocation(e, this.location, this.data.popup.selectData); |
| | | this.setData({ |
| | | popup: { |
| | | ...this.data.popup, |
| | | selectData |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 下拉框选择开启 |
| | | handleShowPopup(e) { |
| | |
| | | values: selectOption[arr[0]].children[arr[1]].children || [], |
| | | defaultIndex: arr[2] |
| | | }, |
| | | { |
| | | values: selectOption[arr[0]].children[arr[1]].children[arr[2]].children || [], |
| | | defaultIndex: arr[3] |
| | | }, |
| | | ]; |
| | | selectData.forEach((x) => { |
| | | x.values.forEach((y) => { |
| | | delete y.children; |
| | | }); |
| | | }); |
| | | } else if (type === 'occurTime') { |
| | | this.setData({ |
| | | timePicker: true |
| | | }) |
| | | return; |
| | | } else { |
| | | let selectOption = this.select[type]; |
| | | selectData = [{ |
| | |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 关闭下拉框选择 |
| | | handleClosePopup() { |
| | | this.data.popup.visible = false; |
| | |
| | | }); |
| | | }, |
| | | |
| | | // 调解请求输入时额外的需求操作 |
| | | handlecaseClaimFocus() { |
| | | if (!this.data.submitData.caseClaim) { |
| | | this.data.submitData.caseClaim = '请求1:'; |
| | | this.setData({ |
| | | submitData: this.data.submitData |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 点击新增 or 删除 or 修改 申请人或被申请人 |
| | | handleEditParty(e) { |
| | | let that = this; |
| | | let formtype = e.currentTarget.dataset.formtype, |
| | | index = e.currentTarget.dataset.index, |
| | | edittype = e.currentTarget.dataset.edittype, |
| | | agent = e.currentTarget.dataset.agent; |
| | | let type = formtype === 'plaintiffList' ? 2 : 3; |
| | | if (edittype === 'delete') { |
| | | // 点击删除 |
| | | $$.showModal({ |
| | | content: '确定删除当前人员信息吗?', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | let formtype_ = that.data.popupMsg.type === 2 ? 'plaintiffList' : 'defendantList'; |
| | | let partyIndex = that.data.popupMsg.partyIndex; |
| | | if (this.data.popupMsg.partyTabActive === '2') { |
| | | that.data.submitData[formtype_][partyIndex].agent = null; |
| | | } else { |
| | | that.data.submitData[formtype_].splice(partyIndex, 1); |
| | | } |
| | | that.setData({ |
| | | submitData: that.data.submitData, |
| | | popupMsg: { |
| | | show: false |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | } else if (edittype === 'edit') { |
| | | // 点击修改 |
| | | let data = this.data.submitData[formtype][index]; |
| | | this.setData({ |
| | | popupMsg: { |
| | | show: true, |
| | | title: formtype === 'plaintiffList' ? '修改申请人' : '修改被申请人', |
| | | type: type, |
| | | editType: 'edit', |
| | | buttonText: '保存信息', |
| | | partyArr: this.select['personClass'], |
| | | partyTabActive: agent ? '2' : '1', |
| | | partyIndex: index, |
| | | perClassIndex: agent ? 0 : data.perClass === '09_01001-1' ? 0 : data.perClass === '09_01001-2' ? 1 : 2, |
| | | data: agent ? data.agent : data, |
| | | }, |
| | | }); |
| | | } else { |
| | | // 点击增加 |
| | | this.setData({ |
| | | popupMsg: { |
| | | show: true, |
| | | title: formtype === 'plaintiffList' ? '增加申请人' : '增加被申请人', |
| | | type: type, |
| | | editType: 'add', |
| | | buttonText: '保存信息', |
| | | partyArr: this.select['personClass'], |
| | | partyTabActive: '1', // 当事人代理人tab下标 |
| | | perClassIndex: 0, // 当事人类型下标 |
| | | data: { |
| | | id: $$.getBusinessId(), |
| | | perClass: '09_01001-1', |
| | | perClassName: '自然人', |
| | | trueName: '', |
| | | deputy: '', |
| | | mobile: '', |
| | | certiNo: '', |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 切换增加弹窗的'1'当事人,'2'代理人 |
| | | handleChangeTab(e) { |
| | | if (this.data.popupMsg.editType === 'edit') { |
| | | Toast.fail('不支持修改类型'); |
| | | return false; |
| | | } |
| | | // 滚动到底部事件 |
| | | handlescrolltolower() { |
| | | this.setData({ |
| | | popupMsg: { |
| | | ...this.data.popupMsg, |
| | | partyTabActive: e.detail.name, |
| | | perClassIndex: 0, |
| | | partyIndex: 0, |
| | | data: { |
| | | ...this.data.popupMsg.data, |
| | | perClass: '09_01001-1', |
| | | perClassName: '自然人', |
| | | trueName: '', |
| | | deputy: '', |
| | | mobile: '', |
| | | certiNo: '', |
| | | }, |
| | | }, |
| | | }); |
| | | popupVisibleText: true |
| | | }) |
| | | }, |
| | | |
| | | // 切换增加弹窗的人员类型 |
| | | handleChangePerClass(e) { |
| | | if (this.data.popupMsg.editType === 'edit') { |
| | | Toast.fail('不支持修改类型'); |
| | | return false; |
| | | } |
| | | let value = e.currentTarget.dataset.item; |
| | | let index = e.currentTarget.dataset.index; |
| | | let arr = ['perClass', 'perClassName']; |
| | | arr.forEach((x, t) => { |
| | | this.data.popupMsg.data[x] = value[t === 0 ? 'value' : 'label']; |
| | | }); |
| | | this.data.popupMsg.data.trueName = ''; |
| | | this.data.popupMsg.data.deputy = ''; |
| | | this.data.popupMsg.perClassIndex = index; |
| | | this.setData({ |
| | | popupMsg: this.data.popupMsg |
| | | }); |
| | | }, |
| | | |
| | | // 选择代理人 |
| | | handleSelectAgent(e) { |
| | | this.setData({ |
| | | popupMsg: { |
| | | ...this.data.popupMsg, |
| | | partyIndex: e.currentTarget.dataset.index, |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 底部弹窗操作,恢复草稿 |
| | | handleClickPopupMsg() { |
| | | if (this.data.popupMsg.type === 1) { |
| | | // 恢复草稿 |
| | | this.setData({ |
| | | materialNum: this.data.popupMsg.submitData.fileSize, |
| | | userInfoVisible: false, |
| | | submitData: { |
| | | ...this.data.submitData, |
| | | ...this.data.popupMsg.submitData, |
| | | ...this.data.popupMsg.intentionObj |
| | | }, |
| | | popupMsg: { |
| | | show: false |
| | | }, |
| | | }); |
| | | } else { |
| | | // 当事人保存 |
| | | let popupMsg = this.data.popupMsg; |
| | | let data = this.data.popupMsg.data; |
| | | |
| | | // 信息校验 |
| | | let msg = null; |
| | | let arr = this.data.submitData[popupMsg.type === 2 ? 'defendantList' : 'plaintiffList']; |
| | | let arr2 = this.data.submitData[popupMsg.type === 2 ? 'plaintiffList' : 'defendantList']; |
| | | |
| | | console.log('arr2', arr2); |
| | | console.log('arr', arr); |
| | | console.log('data', data); |
| | | console.log('popupMsg', popupMsg); |
| | | forEach: for (let t = 0; t < arr.length; t++) { |
| | | if (arr[t].certiNo === data.certiNo && !!$$.verifyEmpty(data.certiNo)) { |
| | | msg = '申请人与被申请人不能相同'; |
| | | break forEach; |
| | | } |
| | | } |
| | | forEach: for (let t = 0; t < arr2.length; t++) { |
| | | if (arr2[t].certiNo === data.certiNo && !!$$.verifyEmpty(data.certiNo) && arr2[t].perClass === data.perClass && t !== popupMsg.partyIndex) { |
| | | msg = `与${popupMsg.type === 3 ? '被' : ''}申请人不能重复`; |
| | | break forEach; |
| | | } |
| | | } |
| | | // 被申请人可不需要手机号码,申请人和代理人需要 |
| | | if ( |
| | | (data.mobile && !$$.mobileRegExp(data.mobile) && popupMsg.type === 3) || |
| | | (!$$.mobileRegExp(data.mobile) && popupMsg.type === 2) || |
| | | (!$$.mobileRegExp(data.mobile) && popupMsg.partyTabActive === '2') |
| | | ) { |
| | | msg = '请输入正确的手机号码'; |
| | | } |
| | | if (!$$.verifyEmpty(data.trueName) || (data.perClass !== '09_01001-1' && !$$.verifyEmpty(data.deputy))) { |
| | | msg = '请补充' + (popupMsg.type === 3 ? '被' : '') + '申请人方的' + (popupMsg.partyTabActive === '1' ? '当事人' : '代理人') + '信息'; |
| | | } |
| | | if (popupMsg.partyTabActive === '1') { |
| | | |
| | | } |
| | | // 增加申请人的信息 |
| | | // if (!arr2[popupMsg.partyIndex]?.trueName || !arr2[popupMsg.partyIndex]?.mobile) { |
| | | // msg = '请补充申请人方的当事人信息'; |
| | | // } |
| | | if (msg) { |
| | | Toast.fail(msg); |
| | | return; |
| | | } |
| | | if (popupMsg.partyTabActive === '2' && typeof popupMsg.partyIndex !== 'number') { |
| | | Toast.fail('请选择代理对象'); |
| | | return; |
| | | } |
| | | if (popupMsg.partyTabActive === '2' && arr2[popupMsg.partyIndex]?.certiNo === data.certiNo) { |
| | | Toast.fail('代理人与当事人不能相同'); |
| | | return; |
| | | } |
| | | |
| | | let type = popupMsg.type === 2 ? 'plaintiffList' : 'defendantList'; |
| | | if (popupMsg.partyTabActive === '2') { |
| | | this.data.submitData[type][popupMsg.partyIndex] = { |
| | | ...this.data.submitData[type][popupMsg.partyIndex] |
| | | }; |
| | | this.data.submitData[type][popupMsg.partyIndex].agent = { |
| | | ...this.data.submitData[type][popupMsg.partyIndex].agent, |
| | | ...data |
| | | }; |
| | | } else { |
| | | if (popupMsg.editType === 'add') { |
| | | this.data.submitData[type] = [...this.data.submitData[type], data]; |
| | | } else { |
| | | this.data.submitData[type][popupMsg.partyIndex] = { |
| | | ...this.data.submitData[type][popupMsg.partyIndex], |
| | | ...data |
| | | }; |
| | | } |
| | | } |
| | | this.setData({ |
| | | submitData: this.data.submitData, |
| | | popupMsg: { |
| | | show: false |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 关闭底部弹窗 |
| | | handleClosePopupMsg() { |
| | | if (this.data.popupMsg.type === 1) { |
| | | this.getUserInfo(this.data.popupMsg.intentionObj); |
| | | } else { |
| | | this.setData({ |
| | | popupMsg: { |
| | | show: false |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 关闭选择人员 |
| | | handleVisiblePopupSelect(e) { |
| | | // 用户须知 |
| | | handleAgree(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | if (type === 'open') { |
| | | this.getPersonHistory(); |
| | | } else { |
| | | this.setData({ |
| | | popupSelect: { |
| | | show: false |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 选择人员 |
| | | handleSelectPerson(e) { |
| | | this.setData({ |
| | | popupSelect: { |
| | | ...this.data.popupSelect, |
| | | activeIndex: e.currentTarget.dataset.index |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 确定历史人员数据填充 |
| | | handleConfirmPerson() { |
| | | if (typeof this.data.popupSelect.activeIndex !== 'number') { |
| | | Toast.fail('请选择人员'); |
| | | if (!this.data.popupVisibleText) { |
| | | Toast('请阅读完整的用户须知'); |
| | | return; |
| | | } |
| | | let data = this.data.popupSelect.data[this.data.popupSelect.activeIndex] || {}; |
| | | this.data.popupMsg.perClassIndex = |
| | | this.data.popupMsg.partyTabActive === '2' ? 0 : data.perClass === '09_01001-1' ? 0 : data.perClass === '09_01001-2' ? 1 : 2; |
| | | this.data.popupMsg.data = { |
| | | ...this.data.popupMsg.data, |
| | | perClass: data.perClass, |
| | | perClassName: data.perClassName, |
| | | trueName: data.trueName, |
| | | deputy: data.deputy, |
| | | mobile: data.mobile, |
| | | certiNo: data.certiNo, |
| | | }; |
| | | this.setData({ |
| | | popupSelect: { |
| | | show: false |
| | | }, |
| | | popupMsg: this.data.popupMsg |
| | | }); |
| | | }, |
| | | |
| | | // 跳转至材料上传页面 |
| | | handleGoToMaterial() { |
| | | // 先保存 |
| | | if (this.data.submitData.inputStatus !== '2') { |
| | | this.goToMaterialSave = true; |
| | | this.saveCase(); |
| | | } |
| | | // 获取人员数据保存至全局变量中,方便附件上传页面获取有多少人员 |
| | | let person = []; |
| | | let arr = ['plaintiffList', 'defendantList']; |
| | | arr.forEach((y) => { |
| | | this.data.submitData[y].forEach((x) => { |
| | | if (x.trueName) { |
| | | person.push({ |
| | | id: x.id, |
| | | perClass: x.perClass, |
| | | perClassName: x.perClassName, |
| | | trueName: x.trueName, |
| | | }); |
| | | } |
| | | if (x.agent && x.agent.trueName) { |
| | | person.push({ |
| | | agent: true, |
| | | id: x.agent.id, |
| | | perClass: x.agent.perClass, |
| | | perClassName: x.agent.perClassName, |
| | | trueName: x.agent.trueName, |
| | | }); |
| | | } |
| | | if (type === 'agree') { |
| | | // 同意协议之后退出登录后不重复弹出 |
| | | wx.setStorage({ |
| | | key: 'agreement', |
| | | data: 1 |
| | | }); |
| | | }); |
| | | app.globalData.material.person = person; |
| | | wx.navigateTo({ |
| | | url: '../../pages/materialShow/index?caseId=' + this.data.submitData.id + '&editVisible=true', |
| | | } |
| | | this.setData({ |
| | | popupVisible: false |
| | | }); |
| | | }, |
| | | |
| | | // 下一步 or 上一步 |
| | | handleNext(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | let content = this.data.tipData.guideList.length === 0 ? |
| | | '请再次仔细核对您的申请信息,确定提交调解申请吗?' : |
| | | `根据人工智能大数据分析,您的请求可调整为:【${this.data.tipData.guideList}】(以上建议仅供参考),确定提交调解申请吗?` |
| | | if (type === 'next' && this.data.stepsActive === 0) { |
| | | // this.checkCaseDetail(); |
| | | this.fengxian(); |
| | | } else if (type === 'next' && this.data.stepsActive === 1) { |
| | | let that = this; |
| | | $$.showModal({ |
| | | title: '申请提交确认', |
| | | content: content, |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | that.submitCase(); |
| | | } |
| | | }, |
| | | this.setData({ |
| | | stepsActive: 1 |
| | | }); |
| | | } else if (type === 'back' && this.data.stepsActive === 1) { |
| | | return; |
| | | } |
| | | if (type === 'back' && this.data.stepsActive === 1) { |
| | | this.setData({ |
| | | stepsActive: 0 |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 校验提交信息的必填项并下一步 |
| | | checkCaseDetail() { |
| | | let msg = ''; |
| | | let submitData = this.data.submitData; |
| | | let arr1 = [{ |
| | | key: 'area', |
| | | title: '纠纷发生地' |
| | | }, |
| | | { |
| | | key: 'caseDes', |
| | | title: '纠纷描述' |
| | | }, |
| | | { |
| | | key: 'caseClaim', |
| | | title: '调解请求' |
| | | }, |
| | | ]; |
| | | forEach: for (let i = 0; i < arr1.length; i++) { |
| | | if (!$$.verifyEmpty(submitData[arr1[i].key])) { |
| | | msg = arr1[i].title; |
| | | break forEach; |
| | | } |
| | | } |
| | | if (msg) { |
| | | Toast.fail(msg + '未填写'); |
| | | return false; |
| | | } |
| | | if (submitData.plaintiffList.length === 0) { |
| | | Toast.fail('至少添加一名申请人'); |
| | | return false; |
| | | } |
| | | if (submitData.plaintiffList?.length > 0) { |
| | | if (!submitData.plaintiffList[0].trueName) { |
| | | Toast.fail('至少添加一名申请人'); |
| | | return false; |
| | | } |
| | | } |
| | | if (submitData.defendantList.length === 0) { |
| | | Toast.fail('至少添加一名被申请人'); |
| | | return false; |
| | | } |
| | | if (submitData.defendantList?.length > 0) { |
| | | if (!submitData.defendantList[0].trueName) { |
| | | Toast.fail('至少添加一名申请人'); |
| | | return false; |
| | | } |
| | | } |
| | | if (msg) { |
| | | Toast.fail(msg); |
| | | return false; |
| | | } |
| | | // this.fengxian(); |
| | | this.setData({ |
| | | stepsActive: 1 |
| | | }); |
| | | }, |
| | | |
| | | // 返回首页 |
| | | handleGoHomepage() { |
| | | if (this.data.changeVisible) { |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }); |
| | | return false; |
| | | } |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | }, |
| | | |
| | | // 录音组件开启 and 关闭触发 |
| | | handleVisibleRecording(e) { |
| | | this.setData({ |
| | | recordingVisible: !this.data.recordingVisible |
| | | }); |
| | | }, |
| | | |
| | | // 获取录音转写的文字 |
| | | handleGetWords(e) { |
| | | let key = e.currentTarget.dataset.type; |
| | | let value = e.detail; |
| | | if (key === 'caseDes') { |
| | | this.data.submitData[key] = this.data.submitData[key] + value; |
| | | this.setData({ |
| | | submitData: this.data.submitData, |
| | | recordingVisible: !this.data.recordingVisible |
| | | }); |
| | | } else { |
| | | if (!this.data.submitData.caseClaim) { |
| | | this.data.submitData[key] = '请求1:' + value; |
| | | } else { |
| | | this.data.submitData[key] = this.data.submitData[key] + value; |
| | | } |
| | | this.setData({ |
| | | submitData: this.data.submitData, |
| | | recordingVisible: !this.data.recordingVisible |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 退出页面保存草稿前判断,如果地址没有更改则不需要保存。 |
| | | handleCheckSave() { |
| | | if (this.data.popupMsg.type === 1 && this.data.popupMsg.show) { |
| | | // 恢复草稿弹窗时退出不保存 |
| | | return; |
| | | } |
| | | if (this.goToMaterialSave || this.data.stepsActive !== 0 || this.data.submitData.inputStatus === '2') { |
| | | // 跳转纠纷材料 || 不在第一步骤 || 修改时则不保存 |
| | | this.goToMaterialSave = false; |
| | | return; |
| | | } |
| | | // 地址变动后保存草稿 |
| | | let save = false; |
| | | if (['prov', 'city', 'area', 'road', 'village'].map((x) => this.data.submitData[x]).join('') !== this.userInfo.address) save = true; |
| | | let arr = ['caseDes', 'caseType', 'caseTypeName', 'caseClaim', 'addr', 'wantUserId', 'wantUserName', 'wantUnitId', 'wantUnitName']; |
| | | arr.forEach((x) => { |
| | | if ($$.verifyEmpty(this.data.submitData[x])) save = true; |
| | | }); |
| | | if (this.data.submitData['plaintiffList'].length > 1 || this.data.submitData['defendantList'].length > 0) { |
| | | save = true; |
| | | } |
| | | if (save) { |
| | | this.saveCase(); |
| | | } |
| | | }, |
| | | |
| | | async fengxian() { |
| | | let that = this; |
| | | $$.showLoading(); |
| | | let submitData = this.data.submitData; |
| | | const res = await checkCaseClaimRiskApi({ |
| | | caseDes: submitData.caseDes, |
| | | caseClaim: submitData.caseClaim, |
| | | caseTypeName: submitData.caseTypeName, |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | if (res.data?.case_risk_claims || res.data?.guide_risk_claims) { |
| | | if (res.data?.case_risk_claims.length && res.data?.guide_risk_claims.length) { |
| | | let caseList = res.data?.case_risk_claims; |
| | | let guideList = res.data?.guide_risk_claims; |
| | | let caseText = res.data?.caseText; |
| | | let caseTitle = res.data?.caseTitle; |
| | | let similarity = res.data?.similarity; |
| | | if (!this.data.tipData.guideList || JSON.stringify(this.data.tipData.guideList) !== JSON.stringify(guideList)) { |
| | | this.setData({ |
| | | 'tipData.guideList': guideList, |
| | | 'tipData.caseList': caseList, |
| | | caseText: caseText, |
| | | caseTitle: caseTitle, |
| | | similarity: similarity, |
| | | showCase: true, |
| | | }); |
| | | } else { |
| | | this.checkCaseDetail(); |
| | | } |
| | | that.setData({ |
| | | tipData: { |
| | | caseList, |
| | | guideList |
| | | } |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | 'tipData.guideList': [], |
| | | 'tipData.caseList': [], |
| | | }); |
| | | this.checkCaseDetail(); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 上传案件 |
| | | async submitCase() { |
| | | $$.showLoading(); |
| | | let submitData = this.data.submitData; |
| | | submitData.inputStatus = '2'; |
| | | submitData.process = null; |
| | | const res = await submitCaseApi(submitData); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | if (this.data.changeVisible) { |
| | | // 用于当“我的调解”页面等其他页面进入修改时,修改后返回更新数据凭证 |
| | | app.globalData.caseMsg.handleVisible = true; |
| | | } |
| | | if (type === 'next' && this.data.stepsActive === 1) { |
| | | this.setData({ |
| | | stepsActive: 2 |
| | | }); |
| | | let caseId = res.data; |
| | | // 在这里调用接口 |
| | | // getCaseApi({ |
| | | // caseId, |
| | | // start_page_num: '0', |
| | | // end_page_num: '100' |
| | | // }); |
| | | // getFeatureApi({ |
| | | // caseId, |
| | | // }) |
| | | // getCacheOpenAiCaseGuideList({ |
| | | // caseId, |
| | | // guideTypes: '5,6' |
| | | // }) |
| | | return; |
| | | } |
| | | }, |
| | | |
| | | // 保存草稿 |
| | | async saveCase() { |
| | | let submitData = this.data.submitData; |
| | | submitData.inputStatus = '1'; |
| | | const res = await submitCaseApi(submitData); |
| | | if (res.type) { |
| | | console.log('保存成功'); |
| | | } |
| | | }, |
| | | |
| | | // 修改案件 时 获取案件信息 |
| | | async getCaseData(caseId, changeVisible) { |
| | | $$.showLoading(); |
| | | const res = await getCaseDetailApi(caseId); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | if (type === 'back' && this.data.stepsActive === 2) { |
| | | this.setData({ |
| | | materialNum: res.data.fileSize, |
| | | userInfoVisible: false, |
| | | submitData: res.data, |
| | | changeVisible: changeVisible, |
| | | stepsActive: 1 |
| | | }); |
| | | return; |
| | | } |
| | | // 申请提交 |
| | | if (type === 'next' && this.data.stepsActive === 2) { |
| | | let data = this.data.submitData; |
| | | let list = this.data.oneList; |
| | | let personList = []; //"15_020008-1" 申请方当事人 ,"15_020008-2" 被申请方当事人 |
| | | let agentList = []; //"24_00006-1" 申请方代理人 ,"24_00006-2" 被申请方代理人 |
| | | personList = list.filter(item => item.perType === '15_020008-1' || item.perType === '15_020008-2'); |
| | | agentList = list.filter(item => item.perType === '24_00006-1' || item.perType === '24_00006-2'); |
| | | this.caseRegisterSave({ |
| | | ...data, |
| | | personList, |
| | | agentList |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 获取当前页面是否存在草稿 |
| | | async getDraftCase(options) { |
| | | let intentionObj = {}; |
| | | if (options.type) { |
| | | // 找他调页面跳转进入赋值意向调解信息 |
| | | let arr = []; |
| | | if (options.type === '1') { |
| | | arr = ['wantUserId', 'wantUserName']; |
| | | } else { |
| | | arr = ['wantUnitId', 'wantUnitName']; |
| | | } |
| | | intentionObj[arr[0]] = options.id; |
| | | intentionObj[arr[1]] = options.name; |
| | | } |
| | | async caseRegisterSave(params) { |
| | | $$.showLoading(); |
| | | const res = await getDraftCaseApi('1'); |
| | | if (res.type) { |
| | | if (res.data?.id) { |
| | | $$.hideLoading(); |
| | | this.userInfo = { |
| | | address: ['prov', 'city', 'area', 'road', 'village'].map((x) => res.data[x]).join('') |
| | | }; |
| | | this.setData({ |
| | | popupMsg: { |
| | | show: true, |
| | | title: '恢复草稿', |
| | | buttonText: '恢复草稿', |
| | | type: 1, |
| | | intentionObj, |
| | | submitData: res.data |
| | | } |
| | | }); |
| | | } else { |
| | | this.getUserInfo(intentionObj); |
| | | } |
| | | } else { |
| | | this.getUserInfo(intentionObj); |
| | | } |
| | | }, |
| | | |
| | | // 获取个人信息,填充个人信息材料至第一个申请人处,如有草稿则不执行 |
| | | async getUserInfo(intentionObj) { |
| | | let obj = {}, |
| | | locationObj = {}; |
| | | const res = await getUserInfoApi(); |
| | | const res = await caseRegisterSaveApi(params); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | this.data.userInfoVisible = true; |
| | | obj = { |
| | | trueName: res.data.trueName || '', |
| | | certiNo: res.data.idcard || '', |
| | | mobile: res.data.mobile || '', |
| | | address: ['prov', 'city', 'area', 'road', 'village'].map((x) => res.data[x]).join(''), |
| | | }; |
| | | ['prov', 'provName', 'city', 'cityName', 'area', 'areaName', 'road', 'roadName', 'village', 'villageName'].forEach((x) => { |
| | | locationObj[x] = res.data[x] || ''; |
| | | }); |
| | | Toast('提交成功'); |
| | | } |
| | | this.data.submitData.plaintiffList[0] = { |
| | | perClass: '09_01001-1', |
| | | perClassName: '自然人', |
| | | id: $$.getBusinessId(), |
| | | ...obj |
| | | }; |
| | | this.userInfo = obj; |
| | | }, |
| | | |
| | | //选择纠纷类型 、跳转事项概况语音描述,跳转事项申请语音描述 |
| | | caseTypeGoPage(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | wx.navigateTo({ |
| | | url: url, |
| | | }); |
| | | }, |
| | | |
| | | //选择地址 |
| | | openmap: function (e) { |
| | | var that = this; |
| | | console.log('latitude') |
| | | wx.getLocation({ |
| | | type: 'gcj02', //返回可以用于wx.openLocation的经纬度 |
| | | success: function (res) { |
| | | wx.chooseLocation({ |
| | | success: function (res) { |
| | | that.setData({ |
| | | submitData: { |
| | | ...that.data.submitData, |
| | | addr: res.address, |
| | | lng: res.longitude, |
| | | lat: res.latitude, |
| | | } |
| | | }) |
| | | }, |
| | | fail: function (res) { |
| | | |
| | | }, |
| | | |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | delAddress() { |
| | | this.setData({ |
| | | userInfoVisible: this.data.userInfoVisible, |
| | | submitData: { |
| | | ...this.data.submitData, |
| | | ...intentionObj, |
| | | ...locationObj, |
| | | id: $$.getBusinessId() |
| | | }, |
| | | popupMsg: { |
| | | show: false |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 获取选择人员 |
| | | async getPersonHistory() { |
| | | $$.showLoading(); |
| | | const res = await getPersonHistoryApi(); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | this.setData({ |
| | | popupSelect: { |
| | | show: true, |
| | | data: res.data || [] |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 请求下拉框资源 |
| | | async getSelectOptionData() { |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.assets}selectOption.json`, |
| | | type: 'get' |
| | | }); |
| | | if (res) { |
| | | this.select.cardType = res.data.cardType || []; |
| | | this.select.caseCause = this.data.caseCause || []; |
| | | this.select.personClass = res.data.personClass || []; |
| | | } |
| | | addr: '', |
| | | lng: '', |
| | | lat: '' |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 获取省市区等地理资源 |
| | |
| | | } |
| | | }, |
| | | |
| | | // 请求下拉框资源 |
| | | async getSelectOptionData() { |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.assets}selectOption.json`, |
| | | type: 'get' |
| | | }); |
| | | if (res) { |
| | | this.select.cardType = res.data.cardType || []; |
| | | this.select.caseCause = this.data.caseCause || []; |
| | | this.select.personClass = res.data.personClass || []; |
| | | } |
| | | }, |
| | | |
| | | |
| | | // 获取个人信息 |
| | | async getUserInfo() { |
| | | $$.showLoading(); |
| | | const res = await getUserInfoApi(); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let data = res.data || {} |
| | | this.setData({ |
| | | oneList: [{ |
| | | ...data, |
| | | perType: '15_020008-1', |
| | | perTypeName: '申请方当事人', |
| | | perClass: '09_01001-1', |
| | | perClassName: '自然人', |
| | | certiNo: data.idcard || '' |
| | | }] |
| | | }) |
| | | }; |
| | | }, |
| | | |
| | | // 自动添加申请人提醒 |
| | | oneAddMe(e) { |
| | | let formtype = e.currentTarget.dataset.formtype; |
| | | if (formtype === 'yes') { |
| | | this.getUserInfo() |
| | | } |
| | | this.setData({ |
| | | addMePlaintiff: false |
| | | }) |
| | | }, |
| | | |
| | | // 填写人员 |
| | | oneDelPerson(e) { |
| | | console.log('e', e); |
| | | let index = e.currentTarget.dataset.index; |
| | | let item = e.currentTarget.dataset.item; |
| | | |
| | | $$.showModal({ |
| | | title: '删除人员确认', |
| | | content: '确定删除当事人' + item.trueName + '吗?', |
| | | cancelText: '我再想想', |
| | | confirmText: '确定删除', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | this.setData({ |
| | | oneList: this.data.oneList.filter((i, idx) => idx !== index) |
| | | }) |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 添加当事人 |
| | | oneAddPerson(e) { |
| | | let perType = e.currentTarget.dataset.pertype; |
| | | let perTypeName = e.currentTarget.dataset.pertypename; |
| | | if (!perType) { |
| | | this.setData({ |
| | | addPerson: true |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | addPerson: false |
| | | }) |
| | | wx.navigateTo({ |
| | | url: `../../pages/addPerson/index?perType=${perType}&perTypeName=${perTypeName}`, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 修改当事人 |
| | | oneEditPerson(e) { |
| | | let item = e.currentTarget.dataset.item; |
| | | let index = e.currentTarget.dataset.index; |
| | | wx.navigateTo({ |
| | | url: `../../pages/addPerson/index?data=${JSON.stringify(item)}&index=${index}`, |
| | | }); |
| | | }, |
| | | |
| | | // 关闭自定义弹窗 |
| | | addClosePopup(e) { |
| | | let key = e.currentTarget.dataset.key; |
| | | this.setData({ |
| | | [key]: false |
| | | }) |
| | | }, |
| | | |
| | | // 选择发生事件确定 |
| | | onInput(e) { |
| | | let key = e.currentTarget.dataset.key; |
| | | let value = e.detail; |
| | | this.setData({ |
| | | [key]: false, |
| | | submitData: { |
| | | ...this.data.submitData, |
| | | occurTime: value, |
| | | occurTimeName: $$.moment(value).format('YYYY-MM-DD'), |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | onLoad: function () { |
| | | this.getLocationData(); |
| | | this.getSelectOptionData(); |
| | | if (options.change) { |
| | | this.getCaseData(options.caseId, true); |
| | | let agreement = wx.getStorageSync('agreement'); |
| | | if (!agreement) { |
| | | this.getAgreement(); |
| | | } else { |
| | | this.getDraftCase(options); |
| | | if (this.data.oneList?.length === 0) { |
| | | this.setData({ |
| | | addMePlaintiff: true |
| | | }) |
| | | } |
| | | } |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | | onShow: function () { |
| | | if (app.globalData.material.data.length !== 0) { |
| | | // 计算附件数量 |
| | | let num = 0; |
| | | app.globalData.material.data.forEach((x) => { |
| | | num = num + x.num; |
| | | }); |
| | | app.globalData.material.data = []; |
| | | if (this.data.oneData?.trueName) { |
| | | let list = this.data.oneList; |
| | | console.log('list', list); |
| | | console.log('this.data.editIndex', this.data.editIndex); |
| | | console.log('this.data.oneData', this.data.oneData); |
| | | if (this.data.editIndex) { |
| | | list[this.data.editIndex] = this.data.oneData; |
| | | } else { |
| | | list = list.concat(this.data.oneData) |
| | | } |
| | | this.setData({ |
| | | materialNum: num |
| | | }); |
| | | oneList: list, |
| | | oneData: {}, |
| | | editIndex: false, |
| | | }) |
| | | } |
| | | |
| | | if (this.data.twoData?.title) { |
| | | this.setData({ |
| | | submitData: { |
| | | ...this.data.submitData, |
| | | caseType: this.data.twoData.value, |
| | | caseTypeName: this.data.twoData.title, |
| | | }, |
| | | twoData: {} |
| | | }) |
| | | } |
| | | if (this.data.twoValue) { |
| | | console.log('this.data.twoValue', this.data.twoValue); |
| | | console.log('this.data.twoKey', this.data.twoKey); |
| | | this.setData({ |
| | | submitData: { |
| | | ...this.data.submitData, |
| | | [this.data.twoKey]: this.data.twoValue |
| | | }, |
| | | twoValue: '', |
| | | twoKey: '' |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | onHide: function () { |
| | | this.handleCheckSave(); |
| | | // this.handleCheckSave(); |
| | | }, |
| | | |
| | | onUnload: function () { |
| | | this.handleCheckSave(); |
| | | // this.handleCheckSave(); |
| | | }, |
| | | }); |
| | |
| | | { |
| | | "navigationBarTitleText": "申请调解", |
| | | "usingComponents": { |
| | | "steps": "../../components/steps/index", |
| | | "mediate-detail": "../../components/mediate-detail/index", |
| | | "recording": "../../components/recording/index", |
| | | "ellipsis-text": "../../components/ellipsis-text/index" |
| | | } |
| | | } |
| | | "navigationBarTitleText": "反应诉求", |
| | | "usingComponents": { |
| | | "steps": "../../components/steps/index", |
| | | "mediate-detail": "../../components/mediate-detail/index", |
| | | "recording": "../../components/recording/index", |
| | | "textarea": "../../components/textarea/index", |
| | | "ellipsis-text": "../../components/ellipsis-text/index" |
| | | } |
| | | } |
| | |
| | | <van-toast id="van-toast" /> |
| | | |
| | | <common-page bind:onCancelPicker="handleClosePopup" bind:onChangePicker="handleChangeColumns" bind:onClosePopup="handleClosePopup" bind:onConfirmPicker="handleConfirmPicker" popup="{{ popup }}"> |
| | | <!-- 步骤条 --> |
| | | <view class="steps"> |
| | | <steps stepsActive="{{ stepsActive }}" stepsData="{{ steps }}" stepsType="picture" /> |
| | | </view> |
| | | <!-- 未提交前 --> |
| | | <block wx:if="{{ stepsActive !== 2 }}"> |
| | | <!-- 填写申请 --> |
| | | |
| | | <!-- 未提交 --> |
| | | <block wx:if="{{ !saveStatus }}"> |
| | | <!-- 步骤条 --> |
| | | <view class="steps"> |
| | | <steps stepsActive="{{ stepsActive }}" stepsData="{{ steps }}" stepsType="picture" /> |
| | | </view> |
| | | |
| | | <!-- 填写人员--> |
| | | <block wx:if="{{ stepsActive === 0 }}"> |
| | | <!-- 意向调解组织 or 意向调解员 --> |
| | | <view class="card" style="background: linear-gradient(95deg,rgba(173,198,255,0.50) 0%, rgba(214,228,255,0.80) 4%, rgba(214,228,255,0.55) 100%)" wx:if="{{ submitData.wantUserId || submitData.wantUnitId }}"> |
| | | <view class="cell"> |
| | | <view class="cell-title">意向{{ submitData.wantUserId ? '调解员' : '调解组织' }}</view> |
| | | <view class="cell-select">{{ submitData.wantUserId ? submitData.wantUserName : submitData.wantUnitName }}</view> |
| | | <view bind:tap="handleDeleteWant" class="wantUser-delete second-font">删除</view> |
| | | <view style="padding:24rpx"> |
| | | <view wx:for="{{oneList}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index"> |
| | | <view class='one-list' wx:if="{{item.perType==='15_020008-1'||item.perType==='24_00006-1'}}"> |
| | | <view bindtap="oneEditPerson" data-item="{{ item }}" data-index="{{ index }}" class="one-list-l green">申请方</view> |
| | | <view bindtap="oneEditPerson" data-item="{{ item }}" data-index="{{ index }}" class="one-list-r"> |
| | | <view class="one-list-r-t"> |
| | | <view class="one-list-text">{{item.trueName}}</view> |
| | | <view class="one-list-phone">{{item.mobile}}</view> |
| | | <view wx:if="{{item.perType==='24_00006-1'}}" class="one-list-tag">代理人</view> |
| | | </view> |
| | | <view class="one-list-r-b">{{item.perClassName}} | {{item.certiNo}} </view> |
| | | </view> |
| | | <view class="one-list-del"> |
| | | <image class="one-list-del-2" src="{{ imgUrl }}del_bg.png" mode="" /> |
| | | </view> |
| | | <view class="one-list-del-1" data-index="{{index}}" data-item="{{item}}" bindtap="oneDelPerson"> |
| | | <image class="one-list-del-1" src="{{ imgUrl }}del.png" mode="" /> |
| | | </view> |
| | | </view> |
| | | <view class='one-list' wx:else> |
| | | <view bindtap="oneEditPerson" data-item="{{ item }}" data-index="{{ index }}" class="one-list-l orange"><text>被申\n请方</text></view> |
| | | <view bindtap="oneEditPerson" data-item="{{ item }}" data-index="{{ index }}" class="one-list-r"> |
| | | <view class="one-list-r-t"> |
| | | <view class="one-list-text">{{item.trueName}}</view> |
| | | <view class="one-list-phone">{{item.mobile}}</view> |
| | | <view wx:if="{{item.perType==='24_00006-2'}}" class="one-list-tag-orange">代理人</view> |
| | | </view> |
| | | <view class="one-list-r-b">{{item.perClassName}} |{{item.certiNo}}</view> |
| | | </view> |
| | | <view class="one-list-del"> |
| | | <image class="one-list-del-2" src="{{ imgUrl }}del_bg.png" mode="" /> |
| | | </view> |
| | | <view class="one-list-del-1" data-index="{{index}}" data-item="{{item}}" bindtap="oneDelPerson"> |
| | | <image class="one-list-del-1" src="{{ imgUrl }}del.png" mode="" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="party-oneAdd"> |
| | | <van-button bind:click="oneAddPerson" block custom-style="border: 1px dashed #1a6fb8; color:#1A6FB8" icon="{{ imgUrl }}add.png">添加当事人</van-button> |
| | | </view> |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="flex: 1;"> |
| | | <van-button bind:click="handleNext" block data-type="next" type="primary">下一步</van-button> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- 纠纷信息 --> |
| | | <view class="card" style="padding-bottom:32rpx"> |
| | | <view bindtap="handleShowPopup" class="cell" data-title="纠纷发生地" data-type="location"> |
| | | <view class="cell-title"> |
| | | 纠纷发生地 |
| | | <text class="cell-required">(必填)</text> |
| | | </view> |
| | | <view class="{{ !submitData.prov ? 'cell-placeholder' : '' }} cell-select">{{ submitData.prov ? wxs.showLocation(submitData) : '未选择' }}</view> |
| | | <view class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell2 cell-noPadding"> |
| | | <view class="cell-title-line">纠纷发生地详址</view> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0;" data-key="addr" placeholder="填写后优先推荐附近的调解组织" value="{{ submitData.addr }}" /> |
| | | </view> |
| | | <view bindtap="handleShowPopup" class="cell cell-noPadding" data-title="纠纷类型" data-type="caseCause"> |
| | | <view class="cell-title">纠纷类型</view> |
| | | </block> |
| | | |
| | | <!-- 描述纠纷 --> |
| | | <block wx:elif="{{stepsActive === 1}}"> |
| | | <view class="popupMsg-form"> |
| | | <view bindtap="caseTypeGoPage" data-url="../../pages/caseType/index" class="cell cell-item" data-title="纠纷类型" data-key="certiType" data-type="cardType"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 纠纷类型</text></view> |
| | | <view class="{{ !submitData.caseTypeName ? 'cell-placeholder' : '' }} cell-select">{{ submitData.caseTypeName ? submitData.caseTypeName : '未选择' }}</view> |
| | | <view class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | <block> |
| | | <view class="cell2 cell-noPadding"> |
| | | <view class="cell-title-line"> |
| | | 纠纷描述 |
| | | <text class="cell-required">(必填)</text> |
| | | </view> |
| | | <van-field autosize="{{ { maxHeight: 88, minHeight: 22 } }}" bind:change="handleChange" border="{{ false }}" custom-style="padding:0;" data-key="caseDes" placeholder="请简要描述纠纷发生的时间、地点及经过" type="textarea" value="{{ submitData.caseDes }}" /> |
| | | <!-- <view class="case"> |
| | | <view class="img-case_2"> |
| | | <image src="/img/case_1.png" class="img1"></image> |
| | | </view> |
| | | <view>您在纠纷描述中提到了租赁合同,但您并未上传对应材料,请核实并补充对应材料。</view> |
| | | </view> --> |
| | | <view bindtap="handleShowPopup" class="cell cell-item" data-title="纠纷发生时间" data-key="occurTime" data-type="occurTime"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 纠纷发生时间</text></view> |
| | | <view class="{{ !submitData.occurTimeName ? 'cell-placeholder' : '' }} cell-select"> |
| | | {{ submitData.occurTimeName ? submitData.occurTimeName: '未选择' }} |
| | | </view> |
| | | <recording bind:getwords="handleGetWords" bind:onVisible="handleVisibleRecording" data-type="caseDes" /> |
| | | </block> |
| | | <block> |
| | | <view class="cell2"> |
| | | <view class="cell-title-line"> |
| | | 调解请求 |
| | | <text class="cell-required">(必填)</text> |
| | | </view> |
| | | <van-field autosize="{{ { maxHeight: 88, minHeight: 22 } }}" bind:change="handleChange" bind:focus="handlecaseClaimFocus" border="{{ false }}" custom-style="padding:0;" data-key="caseClaim" placeholder="请逐条描述您的调解请求,如请求1...请求2..." placeholder-style="color: rgba(0, 0, 0, 0.5)" type="textarea" value="{{ submitData.caseClaim }}" /> |
| | | <view wx:if="{{tipData.caseList.length}}" class="case"> |
| | | <view style="display:'flex'"> |
| | | <view class="img-case_2"> |
| | | <image src="/img/case_1.png" class="img1"></image> |
| | | <view>请参考类案中的请求:</view> |
| | | </view> |
| | | <view> |
| | | 可能不合理或不完整的请求: |
| | | </view> |
| | | <view style="white-space: pre-line;" data-index="{{ index }}" data-item="{{ item }}" wx:for="{{tipData.caseList}}" wx:key="index">{{item}} |
| | | </view> |
| | | <view> |
| | | 类案中的请求: |
| | | </view> |
| | | <view data-index="{{ index }}" data-item="{{ item }}" wx:for="{{tipData.guideList}}" wx:key="index">{{item}} |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <block wx:if="{{showCase}}"> |
| | | <view class="caseBox-content" catch:tap="_case"> |
| | | <view class="caseBox-dot">类案</view> |
| | | <!--【相似度80.3%】黑山县刘某某与张某某黑山县刘某某与张某某黑山县刘某某与张某某--> |
| | | <view class="caseBox-Item">{{similarity}}{{caseText}}</view> |
| | | <view class="caseBox-arrow"> |
| | | <van-icon name="arrow-down" size="8" wx:if="{{showDetail}}" /> |
| | | <van-icon name="arrow-up" size="8" wx:else /> |
| | | </view> |
| | | |
| | | </view> |
| | | <view wx:if="{{showDetail}}"> |
| | | <view style="display:flex;font-size:12px;justify-content: center;">{{caseTitle}}</view> |
| | | <view style="background-color: #fff;font-size: 12px;display: flex;">{{caseText}}</view> |
| | | </view> |
| | | |
| | | </block> |
| | | </view> |
| | | <recording bind:getwords="handleGetWords" bind:onVisible="handleVisibleRecording" data-type="caseClaim" /> |
| | | </block> |
| | | </view> |
| | | <!-- 申请/被申请人信息 --> |
| | | <view class="card" style="padding:16rpx 16rpx 16rpx 32rpx;"> |
| | | <!-- 申请人 --> |
| | | <block wx:for="{{ submitData.plaintiffList }}" wx:key="index"> |
| | | <view class="party"> |
| | | <view class="party-img party-img-shen">申请</view> |
| | | <view bind:tap="handleEditParty" class="party-content" data-edittype="edit" data-formtype="plaintiffList" data-index="{{index}}"> |
| | | <view class="party-content-title"> |
| | | <view class="party-content-title-name"> |
| | | <ellipsis-text content="{{ item.trueName }}" /> |
| | | </view> |
| | | <view class="party-content-title-phone">{{ item.mobile }}</view> |
| | | </view> |
| | | <view class="party-content-subTitle"> |
| | | <ellipsis-text content="{{ titleShow[item.perClass][0] }}{{ item.deputy ? ' | ' : '' }}{{ item.deputy || '' }}{{ item.certiNo ? ' | ' : '' }}{{ item.certiNo || '' }}" fontsize="24" /> |
| | | </view> |
| | | </view> |
| | | <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="plaintiffList">增加</view> |
| | | </view> |
| | | <!-- 代理人 --> |
| | | <view class="party" wx:if="{{ !!item.agent }}"> |
| | | <view class="party-img party-img-shen">申请</view> |
| | | <view bind:tap="handleEditParty" class="party-content" data-agent="{{true}}" data-edittype="edit" data-formtype="plaintiffList" data-index="{{index}}"> |
| | | <view class="party-content-title"> |
| | | <view class="party-content-title-name"> |
| | | <ellipsis-text content="{{ item.agent.trueName }}" /> |
| | | </view> |
| | | <view class="party-content-title-phone">{{ item.agent.mobile }}</view> |
| | | <view class="tag tag-cyan" style="margin-left:12rpx">代理人</view> |
| | | </view> |
| | | <view class="party-content-subTitle"> |
| | | <ellipsis-text content="代理对象 | {{ item.trueName }}" fontsize="24" /> |
| | | </view> |
| | | </view> |
| | | <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="plaintiffList">增加</view> |
| | | </view> |
| | | </block> |
| | | <!-- 新增申请人button --> |
| | | <block wx:if="{{ submitData.plaintiffList.length === 0 }}"> |
| | | <view class="party"> |
| | | <view class="party-img party-img-shen">申请</view> |
| | | <view class="party-noneAdd"> |
| | | <van-button bind:click="handleEditParty" block custom-style="border: 2rpx dashed rgba(0,0,0,0.20)" data-formtype="plaintiffList" icon="{{ imgUrl }}register-add-party.png">增加申请人信息</van-button> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <!-- 被申请人 --> |
| | | <block wx:for="{{ submitData.defendantList }}" wx:key="index"> |
| | | <view class="party"> |
| | | <view class="party-img party-img-bei">被申</view> |
| | | <view bind:tap="handleEditParty" class="party-content" data-edittype="edit" data-formtype="defendantList" data-index="{{index}}"> |
| | | <view class="party-content-title"> |
| | | <view class="party-content-title-name"> |
| | | <ellipsis-text content="{{ item.trueName }}" /> |
| | | </view> |
| | | <view class="party-content-title-phone">{{ item.mobile }}</view> |
| | | </view> |
| | | <view class="party-content-subTitle"> |
| | | <ellipsis-text content="{{ titleShow[item.perClass][0] }}{{ item.deputy ? ' | ' : '' }}{{ item.deputy || '' }}{{ item.certiNo ? ' | ' : '' }}{{ item.certiNo || '' }}" fontsize="24" /> |
| | | </view> |
| | | </view> |
| | | <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="defendantList">增加</view> |
| | | </view> |
| | | <!-- 代理人 --> |
| | | <view class="party" wx:if="{{ !!item.agent }}"> |
| | | <view class="party-img party-img-bei">被申</view> |
| | | <view bind:tap="handleEditParty" class="party-content" data-agent="{{true}}" data-edittype="edit" data-formtype="defendantList" data-index="{{index}}"> |
| | | <view class="party-content-title"> |
| | | <view class="party-content-title-name"> |
| | | <ellipsis-text content="{{ item.agent.trueName }}" /> |
| | | </view> |
| | | <view class="party-content-title-phone">{{ item.agent.mobile }}</view> |
| | | <view class="tag tag-orange" style="margin-left:12rpx">代理人</view> |
| | | </view> |
| | | <view class="party-content-subTitle"> |
| | | <ellipsis-text content="代理对象 | {{ item.trueName }}" fontsize="24" /> |
| | | </view> |
| | | </view> |
| | | <view bind:tap="handleEditParty" class="party-add second-font" data-formtype="defendantList">增加</view> |
| | | </view> |
| | | </block> |
| | | <!-- 新增被申请人button --> |
| | | <block wx:if="{{ submitData.defendantList.length === 0 }}"> |
| | | <view class="party"> |
| | | <view class="party-img party-img-bei">被申</view> |
| | | <view class="party-noneAdd"> |
| | | <van-button bind:click="handleEditParty" block custom-style="border: 2rpx dashed rgba(0,0,0,0.20)" data-formtype="defendantList" icon="{{ imgUrl }}register-add-party.png">增加被申请人信息</van-button> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | <!-- 纠纷材料 --> |
| | | <view class="card"> |
| | | <view bindtap="handleGoToMaterial" class="cell" data-title="纠纷发生地" data-type="location"> |
| | | <view class="cell-title">纠纷材料</view> |
| | | <view class="{{ !materialNum ? 'cell-placeholder' : '' }} cell-select">{{ materialNum ? materialNum + '份资料' : '未上传' }}</view> |
| | | <view class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{!submitData.addr}}" bindtap="openmap" data-url="../../pages/caseType/index" class="cell cell-item" data-title="纠纷发生地" data-type="location"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 纠纷发生地</text></view> |
| | | <view class="cell-placeholder cell-select">未选择</view> |
| | | <view wx:if="{{!submitData.addr}}" class="cell-arrow"> |
| | | <van-icon name="arrow" /> |
| | | </view> |
| | | </view> |
| | | <view wx:else class="cell-item" data-title="纠纷发生地" data-type="location"> |
| | | <view bindtap="openmap" class="cell-title"><text><text class="cell-required">*</text> 纠纷发生地</text></view> |
| | | <view class="two-addr"> |
| | | <view> |
| | | {{submitData.addr}} |
| | | </view> |
| | | <view bindtap="delAddress" class="two-addr-img"> |
| | | <image src="{{imgUrl}}address-del.png" mode="" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title1">涉及人数(人)</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="peopleNum" input-align="right" placeholder="请填写" value="{{ submitData.peopleNum || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell-item"> |
| | | <view class="cell-title1">涉及金额(元)</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-key="amount" input-align="right" placeholder="请填写" value="{{ submitData.amount || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view style="height: 16rpx;"></view> |
| | | <block> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 事项概况</text></view> |
| | | <van-field custom-style="padding:0 20rpx;line-height:90rpx" autosize="{{ { maxHeight: 88, minHeight: 88 } }}" bind:change="handleChange" border="{{ false }}" maxlength='2000' data-key="caseDes" placeholder="请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过" type="textarea" value="{{ submitData.caseDes }}" /> |
| | | </view> |
| | | <view class="textarea-foot"> |
| | | <view class="textarea-limit">{{caseDesNum||0}}/2000字</view> |
| | | <view class="textarea-ability"> |
| | | <view class="textarea-img"> |
| | | <image src="{{imgUrl}}imgOcr.png" mode="" />识别图片 |
| | | </view> |
| | | <view style="padding: 0 8rpx;">|</view> |
| | | <view bindtap="caseTypeGoPage" data-url="../../pages/speechToText/index?type=caseDes" class="textarea-img"> |
| | | <image src="{{imgUrl}}voiceOcr.png" mode="" />语音描述 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <view style="height: 16rpx;"></view> |
| | | <block> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text> 事项申请</text></view> |
| | | <van-field custom-style="padding:0 20rpx;line-height:90rpx" autosize="{{ { maxHeight: 88, minHeight: 88 } }}" bind:change="handleChange" border="{{ false }}" maxlength='500' data-key="caseClaim" placeholder="希望相关部门如何处理,建议分条描述,如请求1,请求2..." type="textarea" value="{{ submitData.caseClaim }}" /> |
| | | </view> |
| | | <view class="textarea-foot"> |
| | | <view class="textarea-limit">{{caseClaimNum||0}}/500字</view> |
| | | <view class="textarea-ability"> |
| | | <view class="textarea-img"> |
| | | <image src="{{imgUrl}}imgOcr.png" mode="" />识别图片 |
| | | </view> |
| | | <view style="padding: 0 8rpx;">|</view> |
| | | <view bindtap="caseTypeGoPage" data-url="../../pages/speechToText/index?type=caseClaim" class="textarea-img"> |
| | | <image src="{{imgUrl}}voiceOcr.png" mode="" />语音描述 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <view style="height: 16rpx;"></view> |
| | | <block> |
| | | <view style="padding-left: 32rpx;" class="cell-item"> |
| | | <view class="upload-title"> |
| | | 事件材料 |
| | | <image src="{{imgUrl}}upload-add.png" mode="" /> |
| | | </view> |
| | | <view class="upload-text"> |
| | | 说明:建议上传人员身份证及纠纷涉及的证件材料,代理人请上传身份证及授权委托书 |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="flex: 1;"> |
| | | <view class="two-button"> |
| | | <view class="two-button-flex1"> |
| | | <van-button bind:click="handleNext" block data-type="back">上一步</van-button> |
| | | </view> |
| | | <view class="two-button-flex2"> |
| | | <van-button bind:click="handleNext" block data-type="next" type="primary">下一步</van-button> |
| | | </view> |
| | | </view> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <!-- 核实申请 --> |
| | | <block wx:if="{{ stepsActive === 1 }}"> |
| | | <mediate-detail caseData="{{ submitData }}" materialNum="{{ materialNum }}" pageType="3" /> |
| | | |
| | | <!-- 提交申请 --> |
| | | <block wx:elif="{{stepsActive === 2}}"> |
| | | <view class="popupMsg-form"> |
| | | <view class="three-tag"> |
| | | <van-tabs bind:click="threeTagChange" active="{{threeAvtice}}"> |
| | | <!-- 人员信息 --> |
| | | <van-tab title="人员信息" name="1"> |
| | | <view style="padding:24rpx"> |
| | | <view wx:for="{{oneList}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index"> |
| | | <view class='one-list' wx:if="{{item.perType==='15_020008-1'||item.perType==='24_00006-1'}}"> |
| | | <view class="one-list-l green">申请方</view> |
| | | <view class="one-list-r"> |
| | | <view class="one-list-r-t"> |
| | | <view class="one-list-text">{{item.trueName}}</view> |
| | | <view class="one-list-phone">{{item.mobile}}</view> |
| | | <view wx:if="{{item.perType==='24_00006-1'}}" class="one-list-tag">代理人</view> |
| | | </view> |
| | | <view class="one-list-r-b">{{item.perClassName}} | {{item.certiNo}} </view> |
| | | </view> |
| | | </view> |
| | | <view class='one-list' wx:else> |
| | | <view class="one-list-l orange"><text>被申\n请方</text></view> |
| | | <view class="one-list-r"> |
| | | <view class="one-list-r-t"> |
| | | <view class="one-list-text">{{item.trueName}}</view> |
| | | <view class="one-list-phone">{{item.mobile}}</view> |
| | | <view wx:if="{{item.perType==='24_00006-2'}}" class="one-list-tag-orange">代理人</view> |
| | | </view> |
| | | <view class="one-list-r-b">{{item.perClassName}} |{{item.certiNo}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </van-tab> |
| | | <van-tab title="纠纷信息" name="2"> |
| | | <view class="three-tag2"> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">纠纷类型</view> |
| | | <view>{{ submitData.caseTypeName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">纠纷发生时间</view> |
| | | <view>{{ submitData.occurTimeName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">纠纷发生地点</view> |
| | | <view>{{ submitData.addr || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">涉及人数(人)</view> |
| | | <view>{{ submitData.peopleNum || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">涉及金额(元)</view> |
| | | <view>{{ submitData.amount || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">事项概况</view> |
| | | <view>{{ submitData.caseDes || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">事项申请</view> |
| | | <view>{{ submitData.caseClaim || '-' }}</view> |
| | | </view> |
| | | <!-- todo 人工智能提醒 --> |
| | | </view> |
| | | |
| | | </van-tab> |
| | | <van-tab title="事件材料" name="3">内容 3</van-tab> |
| | | </van-tabs> |
| | | </view> |
| | | |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="flex: 1;"> |
| | | <view class="two-button"> |
| | | <view class="two-button-flex1"> |
| | | <van-button bind:click="handleNext" block data-type="back">上一步</van-button> |
| | | </view> |
| | | <view class="two-button-flex2"> |
| | | <van-button bind:click="handleNext" block data-type="next" type="primary">提交申请</van-button> |
| | | </view> |
| | | </view> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <!-- 隔离出下层固定dom的高度便于page滚动 --> |
| | | <view class="height-none" catch:tap="_searchCase" /> |
| | | <!-- 按钮 --> |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="margin-right: 48rpx;" wx:if="{{ stepsActive === 1 }}"> |
| | | <van-button bind:click="handleNext" block custom-class="btn" custom-style="width:240rpx;" data-type="back" type="default">修改</van-button> |
| | | </view> |
| | | <view style="flex: 1;"> |
| | | <van-button bind:click="handleNext" block data-type="next" type="primary">{{ stepsActive === 1 ? '提交' : '预览申请' }}</van-button> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | |
| | | <!-- 已提交 --> |
| | | <block wx:else> |
| | | <view class="success"> |
| | |
| | | </view> --> |
| | | </view> |
| | | </block> |
| | | <!-- 消息提醒 and 新增当事人form --> |
| | | <van-popup bind:close="handleClosePopupMsg" closeable custom-style="background-color:{{ popupMsg.partyTabActive === '1' ? '#e5e5e5' : '#ffffff'}}" position="bottom" round show="{{ popupMsg.show }}" title="{{ popupMsg.title || '' }}" zIndex="999"> |
| | | <view class="popupMsg-draft" wx:if="{{ popupMsg.type === 1 }}">检测到存在过往草稿申请记录,是否为您恢复?</view> |
| | | <!-- 新增当事人form --> |
| | | <view class="popupMsg" wx:else> |
| | | <view class="popupMsg-tab" style="padding-bottom:{{ popupMsg.partyTabActive === '2' ? 0 : undefind }}" wx:if="{{ popupMsg.partyTabActive }}"> |
| | | <van-tabs active="{{ popupMsg.partyTabActive }}" bind:click="handleChangeTab" disabled="{{ popupMsg.editType === 'edit' ? true : false }}" line-width="54rpx" nav-class="{{ popupMsg.partyTabActive === '1' ? 'popupMsg-nav-class' : 'popupMsg-nav-class2'}}" tab-active-class="tab-active-class"> |
| | | <van-tab name="1" title="当事人" /> |
| | | <van-tab name="2" title="代理人" /> |
| | | </van-tabs> |
| | | </view> |
| | | <view class="popupMsg-tab-card" wx:if="{{ popupMsg.partyTabActive === '1' }}"> |
| | | <view bind:tap="handleChangePerClass" class="popupMsg-tab-card-item {{ popupMsg.data.perClass === item.value ? 'popupMsg-tab-card-item-active' : '' }}" data-index="{{ index }}" data-item="{{ item }}" wx:for="{{ popupMsg.partyArr }}" wx:key="index"> |
| | | <view class="popupMsg-tab-card-item-bg" style="border-bottom-left-radius:{{ index === popupMsg.perClassIndex + 1 ? '20rpx' : '0' }};border-bottom-right-radius:{{ index === popupMsg.perClassIndex - 1 ? '20rpx' : '0' }};">{{ item.label }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="popupMsg-form"> |
| | | <view class="cell"> |
| | | <view class="cell-title"> |
| | | {{ titleShow[popupMsg.data.perClass][1] }} |
| | | <text class="cell-required">(必填)</text> |
| | | </view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="trueName" input-align="right" placeholder="请输入{{ titleShow[popupMsg.data.perClass][2] }}" value="{{ popupMsg.data.trueName || '' }}" /> |
| | | </view> |
| | | <view bind:tap="handleVisiblePopupSelect" class="popupMsg-check" data-type="open">选择</view> |
| | | </view> |
| | | <view class="cell cell-noPadding" wx:if="{{ popupMsg.data.perClass !== '09_01001-1' && popupMsg.partyTabActive === '1' }}"> |
| | | <view class="cell-title"> |
| | | {{ titleShow[popupMsg.data.perClass][3] }} |
| | | <text class="cell-required">(必填)</text> |
| | | </view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="deputy" input-align="right" placeholder="请输入真实姓名" value="{{ popupMsg.data.deputy || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell cell-noPadding"> |
| | | <view class="cell-title"> |
| | | 手机号码 |
| | | <text wx:if="{{ popupMsg.type === 2 || popupMsg.partyTabActive === '2' }}" class="cell-required">(必填)</text> |
| | | </view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="mobile" input-align="right" placeholder="请输入常用的手机号码" value="{{ popupMsg.data.mobile || '' }}" /> |
| | | </view> |
| | | </view> |
| | | <view class="cell cell-noPadding"> |
| | | <view class="cell-title">身份证号码</view> |
| | | <view class="cell-select"> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0" data-formtype="popupMsg" data-key="certiNo" input-align="right" placeholder="根据调解实名规定,需要填写此项" value="{{ popupMsg.data.certiNo || '' }}" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="popupMsg-ocrButton"> |
| | | <van-button bind:click="handleOCR" block color="#F2F2F2" custom-style="color:rgba(0,0,0,85)" icon="{{ imgUrl }}camera.png" type="primary">拍照识别身份证</van-button> |
| | | </view> |
| | | <!-- 代理对象 --> |
| | | <view class="popupMsg-agent" wx:if="{{ popupMsg.partyTabActive === '2' }}"> |
| | | <view class="cell-title"> |
| | | 代理对象 |
| | | <text class="cell-required">(必填)</text> |
| | | </view> |
| | | <view class="popupMsg-agent-content"> |
| | | <view bind:tap="handleSelectAgent" class="popupMsg-agent-item {{ index === popupMsg.partyIndex ? 'popupMsg-agent-item-active' : '' }}" data-index="{{ index }}" wx:for="{{ submitData[popupMsg.type === 2 ? 'plaintiffList' : 'defendantList' ] }}" wx:if="{{ !!item.trueName }}" wx:key="index"> |
| | | <view>{{ item.trueName || '无' }}</view> |
| | | <van-icon name="success" wx:if="{{ index === popupMsg.partyIndex }}" /> |
| | | </view> |
| | | <block wx:if="{{ submitData[popupMsg.type === 2 ? 'plaintiffList' : 'defendantList' ].length === 0 }}"> |
| | | <van-empty class="popupMsg-agent-none" description="尚未添加当事人" /> |
| | | </block> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="popupMsg-button"> |
| | | <view style="margin-right:48rpx" wx:if="{{ popupMsg.editType === 'edit' }}"> |
| | | <van-button bind:click="handleEditParty" block custom-class="btn btn-white" custom-style="width:240rpx;background-color:#f2f2f2;" data-edittype="delete" type="primary">删除</van-button> |
| | | </view> |
| | | <view style="flex:1"> |
| | | <van-button bind:click="handleClickPopupMsg" block type="primary">{{ popupMsg.buttonText }}</van-button> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </view> |
| | | </van-popup> |
| | | <!-- 选择人员 --> |
| | | <van-popup bind:close="handleVisiblePopupSelect" data-type="close" round show="{{ popupSelect.show }}" zIndex="999"> |
| | | <view class="popupSelect"> |
| | | <scroll-view scroll-y="{{true}}" style="max-height:600rpx;padding:64rpx 0;"> |
| | | <view bind:tap="handleSelectPerson" class="popupSelect-item" data-index="{{ index }}" wx:for="{{ popupSelect.data }}" wx:key="index"> |
| | | <view class="popupSelect-item-content"> |
| | | <view>{{ item.trueName }}</view> |
| | | <view class="popupSelect-item-content-subTitle">{{ titleShow[item.perClass][0] }}{{ !!item.deputy ? ' | ' : '' }}{{ item.deputy || '' }} | {{ item.mobile }}</view> |
| | | </view> |
| | | <view class="popupSelect-item-icon" wx:if="{{ index === popupSelect.activeIndex }}"> |
| | | <van-icon name="success" size="20" /> |
| | | </view> |
| | | </view> |
| | | <van-empty description="暂无历史人员数据" wx:if="{{ popupSelect.data.length === 0 }}" /> |
| | | </common-page> |
| | | |
| | | <!-- 用户须知 --> |
| | | <van-popup class="popup-scroll-xz" round show="{{ popupVisible }}" z-index="990"> |
| | | <view class="popup-scroll"> |
| | | <view style='padding: 32rpx;'> |
| | | <view class="popup-scroll-head">广州解纷码<text class="public-color">用户须知</text></view> |
| | | <scroll-view bindscrolltolower="handlescrolltolower" style="height:980rpx" scroll-y> |
| | | <view>尊敬的用户,您好!</view> |
| | | <view>欢迎使用“广州解纷码”微信小程序,在使用广州解纷码提供的服务之前,请仔细阅读并理解以下条款。一旦您开始使用广州解纷码的服务,即表示您同意遵守以下所有规定:</view> |
| | | <view>1、个人信息保护</view> |
| | | <view>(1)我们承诺尊重并保护您的隐私。我们会按照相关法律法规的规定收集、使用和保护您的个人信息。</view> |
| | | <view>(2)在调解过程中,您提供的个人信息将仅用于解决您所涉及的纠纷,不会用于任何其他目的或被泄露给第三方,除非法律另有要求。</view> |
| | | <view>2、服务范围</view> |
| | | <view>(1)广州解纷码主要提供线上调解服务,包括但不限于在线咨询、申请事项进度查询等。</view> |
| | | <view>(2)平台不提供法律意见或代表任何一方参与法律诉讼过程。</view> |
| | | <view>3、用户行为规范</view> |
| | | <view>(1)用户应当诚实、准确地提供信息,并对所提供信息的真实性负责。</view> |
| | | <view>(2)用户不得上传或传播任何违法、侵犯他人权利的内容。</view> |
| | | <view>(3)用户在使用过程中应遵守国家法律法规和社会公德。</view> |
| | | <view>4、调解程序</view> |
| | | <view>(1)调解过程遵循自愿原则,双方均需同意参与调解才能启动程序。</view> |
| | | <view>(2)调解结果不具备强制执行力,但达成协议后,双方应自觉履行协议内容。</view> |
| | | <view>5、免责声明</view> |
| | | <view>(1)广州解纷码尽力提供准确的信息和服务,但不对调解结果承担任何法律责任。</view> |
| | | <view>(2)如有任何疑问或争议,建议咨询专业法律顾问。</view> |
| | | <view>6、知识产权声明</view> |
| | | <view>(1)广州解纷码的所有内容,包括但不限于文字、图片、音频、视频等,均受著作权法保护。</view> |
| | | <view>(2)未经广州解纷码书面许可,任何人不得复制、转载、改编或以其他方式使用上述内容。 通过点击“同意”按钮或继续使用广州解纷码的服务,即视为接受并同意上述所有条款。如果您不同意上述任何一项内容,将无法使用广州解纷码的相关服务。</view> |
| | | </scroll-view> |
| | | <view class="popupSelect-button"> |
| | | <view bind:tap="handleVisiblePopupSelect" class="popupSelect-button-item" data-type="close">取消</view> |
| | | <view bind:tap="handleConfirmPerson" class="popupSelect-button-item">确定</view> |
| | | </view> |
| | | </view> |
| | | </van-popup> |
| | | </common-page> |
| | | </view> |
| | | <view class="popup-button"> |
| | | <van-button custom-style="border-radius:8px" disabled="{{stepText > 0}}" bind:click="handleAgree" block data-type="agree" round type="primary"> |
| | | 我已阅读并接受用户须知{{stepText>0?'('+stepText+'秒)':''}}</van-button> |
| | | </view> |
| | | </van-popup> |
| | | |
| | | <!-- 自动添加申请人提醒 --> |
| | | <van-popup class="one-add-me-tip" round show="{{ addMePlaintiff }}" z-index="990"> |
| | | <view class="one-add-me"> |
| | | <view class="one-add-me-title"> |
| | | 自动添加申请人提醒 |
| | | </view> |
| | | <view class="one-add-me-content"> |
| | | 是否将您自动登记为本次申请方的当事人? |
| | | </view> |
| | | <view class="one-add-me-button"> |
| | | <van-button type="primary" bind:click="oneAddMe" block round data-formtype="yes">是</van-button> |
| | | <view bindtap="oneAddMe" data-formtype="no"> 否 </view> |
| | | </view> |
| | | </view> |
| | | </van-popup> |
| | | |
| | | <!-- 添加当事人 --> |
| | | <van-popup class="one-add-person-tip" bind:close="addClosePopup" data-key='addPerson' round show="{{ addPerson }}" z-index="990"> |
| | | <view class="one-add-person"> |
| | | <view class="one-add-person-title">添加当事人</view> |
| | | <view class="one-add-person-flex"> |
| | | <text class="one-add-person-text">申请方当事人</text> |
| | | <van-button class="one-add-person-button" type="primary" bind:click="oneAddPerson" block data-perTypeName="申请方当事人" data-perType="15_020008-1">添加</van-button> |
| | | </view> |
| | | <view class="one-add-person-flex"> |
| | | <text class="one-add-person-text">申请方代理人</text> |
| | | <van-button class="one-add-person-button" type="primary" bind:click="oneAddPerson" block data-perTypeName="申请方代理人" data-perType="24_00006-1">添加</van-button> |
| | | </view> |
| | | <view class="one-add-person-flex"> |
| | | <text class="one-add-person-text">被申请方当事人</text> |
| | | <van-button class="one-add-person-button" type="primary" bind:click="oneAddPerson" block data-perTypeName="被申请方当事人" data-perType="15_020008-2">添加</van-button> |
| | | </view> |
| | | <view class="one-add-person-flex"> |
| | | <text class="one-add-person-text">被申请方代理人</text> |
| | | <van-button class="one-add-person-button" type="primary" bind:click="oneAddPerson" block data-perTypeName="被申请方代理人" data-perType="24_00006-2">添加</van-button> |
| | | </view> |
| | | </view> |
| | | </van-popup> |
| | | |
| | | <!-- 时间选择器 --> |
| | | <van-popup position="bottom" bind:close="addClosePopup" data-key='timePicker' show="{{timePicker}}" z-index="990"> |
| | | <van-datetime-picker type="date" value="{{ submitData.occurTime}}" data-key='timePicker' bind:confirm="onInput" max-date="{{ maxDate }}" /> |
| | | </van-popup> |
| | |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .one-list { |
| | | background: #fff; |
| | | padding: 24rpx; |
| | | display: flex; |
| | | position: relative; |
| | | gap: 8px; |
| | | margin-bottom: 12px; |
| | | border-radius: 8px; |
| | | } |
| | | |
| | | .one-list-l { |
| | | height: 96rpx; |
| | | width: 96rpx; |
| | | border-radius: 4px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #fff; |
| | | font-size: 28rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .one-list-r-t { |
| | | display: flex; |
| | | gap: 8px; |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | } |
| | | |
| | | .one-list-phone { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | | |
| | | .one-list-tag { |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | border-radius: 2px; |
| | | background: #e6fffb; |
| | | color: #13C2C2; |
| | | padding: 0 8rpx; |
| | | } |
| | | |
| | | .one-list-tag-orange { |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | border-radius: 2px; |
| | | background: #FFF2E6; |
| | | color: #EF6C24; |
| | | padding: 0 8rpx; |
| | | } |
| | | |
| | | .one-list-r-b { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | font-size: 24rpx; |
| | | line-height: 40rpx; |
| | | margin-top: 8rpx; |
| | | } |
| | | |
| | | .one-list-del { |
| | | position: absolute; |
| | | right: 0; |
| | | top: 0; |
| | | width: 44rpx; |
| | | height: 44rpx; |
| | | } |
| | | |
| | | .one-list-del-1 { |
| | | position: absolute; |
| | | right: 0; |
| | | top: 0; |
| | | width: 44rpx; |
| | | height: 44rpx; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | text-align: center; |
| | | } |
| | | |
| | | .one-list-del image { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .one-list-del-1 image { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | } |
| | | |
| | | .green { |
| | | background-color: #13C2C2; |
| | | } |
| | | |
| | | .orange { |
| | | background-color: #EF6C24; |
| | | } |
| | | |
| | | .one-add-me { |
| | | /* background-color: #fff; */ |
| | | text-align: center; |
| | | padding: 40rpx 32rpx 28rpx; |
| | | } |
| | | |
| | | .one-add-me-tip .van-popup--round { |
| | | width: 80%; |
| | | } |
| | | |
| | | .one-add-me-title { |
| | | font-size: 34rpx; |
| | | line-height: 50rpx; |
| | | margin-bottom: 24rpx; |
| | | } |
| | | |
| | | .one-add-me-content { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | margin-bottom: 28rpx; |
| | | } |
| | | |
| | | .one-add-me-button { |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 16rpx; |
| | | } |
| | | |
| | | .one-add-person-tip .van-popup--round { |
| | | width: 90%; |
| | | } |
| | | |
| | | .one-add-person { |
| | | text-align: center; |
| | | padding: 0rpx 32rpx; |
| | | } |
| | | |
| | | .one-add-person-flex { |
| | | display: flex; |
| | | } |
| | | |
| | | .one-add-person-tip { |
| | | position: relative; |
| | | } |
| | | |
| | | .one-add-person-icon { |
| | | position: absolute; |
| | | bottom: -40rpx; |
| | | z-index: 991; |
| | | } |
| | | |
| | | .one-add-person-title { |
| | | border-bottom: 1px dashed rgba(126, 134, 142, 0.24); |
| | | padding: 24rpx 0 16rpx; |
| | | margin-bottom: 32rpx; |
| | | } |
| | | |
| | | .one-add-person-flex { |
| | | background: #f2f2f6; |
| | | margin-bottom: 24rpx; |
| | | padding: 24rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | |
| | | .one-add-person-text { |
| | | font-size: 32rpx; |
| | | line-height: 48rpx; |
| | | } |
| | | |
| | | .one-add-person-button .van-button { |
| | | height: 60rpx; |
| | | } |
| | | |
| | | .two-button { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | width: 100%; |
| | | gap: 24px; |
| | | } |
| | | |
| | | .two-button-flex1 { |
| | | flex: 1; |
| | | } |
| | | |
| | | .two-button-flex2 { |
| | | flex: 2; |
| | | } |
| | | |
| | | .two-addr { |
| | | padding: 16rpx 20rpx; |
| | | background: #f2f3f5; |
| | | height: 98rpx; |
| | | border-radius: 4rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .two-addr-img { |
| | | height: 23px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .two-addr-img image{ |
| | | width: 15px; |
| | | height: 15px; |
| | | } |
| | | |
| | | .three-tag { |
| | | margin-top: 16rpx; |
| | | } |
| | | |
| | | .three-tag .van-tabs__wrap { |
| | | height: 96rpx !important; |
| | | } |
| | | |
| | | .three-tag .van-tabs__nav { |
| | | height: 100%; |
| | | } |
| | | |
| | | .three-tag .van-tabs__scroll--line { |
| | | height: 100%; |
| | | } |
| | | |
| | | .three-tag .van-tab { |
| | | height: 100%; |
| | | line-height: 96rpx !important; |
| | | } |
| | | |
| | | .three-tag2 { |
| | | background-color: #fff; |
| | | margin-top: 16rpx; |
| | | padding: 24rpx 32rpx; |
| | | } |
| | | |
| | | |
| | | .textarea-foot { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: #fff; |
| | | align-items: center; |
| | | padding-left: 32rpx; |
| | | } |
| | | |
| | | .textarea-limit { |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | color: rgba(23, 26, 29, 0.40); |
| | | } |
| | | |
| | | .textarea-ability { |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: rgba(182, 221, 241, 0.46); |
| | | padding: 16rpx; |
| | | border-radius: 20px 0px 0px 0px; |
| | | color: var(--main-color); |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .textarea-img { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 8rpx; |
| | | } |
| | | |
| | | .textarea-img image { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | } |
| | | |
| | | .upload-title { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .upload-title image { |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | } |
| | | |
| | | .upload-text { |
| | | margin-top: 8rpx; |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | color: rgba(23, 26, 29, 0.40); |
| | | } |
| | | |
| | | .card { |
| | | background-color: #ffffff; |
| | | margin: 0 var(--padding-my); |
| | | margin-top: 16rpx; |
| | | border-radius: var(--border-radius-card); |
| | | padding: 0 32rpx; |
| | | } |
| | | |
| | | .cell-item { |
| | | padding: 24rpx 32rpx 24rpx 12rpx; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .cell-item-select {} |
| | | |
| | | .cell-idCard { |
| | | color: var(--main-color); |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .cell-phone .van-button { |
| | | color: var(--main-color); |
| | | border: none !important; |
| | | padding: 0 !important; |
| | | } |
| | | |
| | | .cell-idCard image { |
| | | width: 34rpx; |
| | | height: 32rpx; |
| | | margin-right: 8rpx; |
| | | } |
| | | |
| | | .cell-title { |
| | | margin-bottom: 8rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .cell-radio { |
| | | display: flex; |
| | | gap: 27rpx; |
| | | } |
| | | |
| | | .cell-title1 { |
| | | font-weight: 600; |
| | | font-size: 30rpx; |
| | | line-height: 46rpx; |
| | | padding-left: 20rpx; |
| | | } |
| | | |
| | | .cell-select { |
| | | padding: 0 20rpx; |
| | | } |
| | | |
| | | .cell-required { |
| | | color: #d1021c; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .cell-item .van-field__control--right { |
| | | text-align: left |
| | | } |
| | | |
| | | .popupMsg-form { |
| | | margin-top: 16rpx; |
| | | flex: 1; |
| | | margin-bottom: 162rpx; |
| | | } |
| | | |
| | | .person-type-select { |
| | | background-color: #fff; |
| | | |
| | | } |
| | | |
| | | .person-type-select-person { |
| | | padding: 24rpx 32rpx 16rpx; |
| | | } |
| | | |
| | | /* components/personTypes/index.wxss */ |
| | | .personTypes { |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: #ffffff; |
| | | gap: 32rpx; |
| | | padding: 0 32rpx 32rpx; |
| | | } |
| | | |
| | | .personTypes-item { |
| | | position: relative; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | color: rgba(23, 26, 29, 0.40); |
| | | border: 1px solid #E5E6EB; |
| | | border-radius: 12rpx; |
| | | padding: 18rpx 0 10rpx; |
| | | position: relative; |
| | | } |
| | | |
| | | .personTypes-item-active, |
| | | .personTypes-item-active .personTypes-item-icon { |
| | | color: var(--main-color); |
| | | border: 1px solid #1a6fb8; |
| | | } |
| | | |
| | | |
| | | |
| | | .personTypes-item-line {} |
| | | |
| | | .personTypes-item-hoverLine { |
| | | width: 168rpx; |
| | | border: 1px solid var(--main-color); |
| | | } |
| | | |
| | | .personTypes-item-line { |
| | | width: 168rpx; |
| | | border: 1px solid #E5E6EB; |
| | | } |
| | | |
| | | .personTypes-item-active .personTypes-item-number1 { |
| | | background-color: var(--main-color); |
| | | color: var(--white); |
| | | } |
| | | |
| | | .personTypes-item-round { |
| | | position: relative; |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | color: #86909C; |
| | | margin-bottom: 8rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .personTypes-item-round image { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .personTypes-item-sueecss { |
| | | position: absolute; |
| | | right: 10rpx; |
| | | top: 10rpx; |
| | | } |
| | | |
| | | .personTypes-item-icon { |
| | | position: absolute; |
| | | z-index: 889; |
| | | top: 50%; |
| | | margin-top: -24rpx; |
| | | right: -88rpx; |
| | | color: #cccccc; |
| | | } |
| | | |
| | | .party-add, |
| | |
| | | color: var(--main-color); |
| | | } |
| | | |
| | | .party-noneAdd { |
| | | |
| | | |
| | | .party-oneAdd { |
| | | flex: 1; |
| | | padding-left: 32rpx; |
| | | padding-right: 16rpx; |
| | | color: var(--main-color); |
| | | } |
| | | |
| | | .popupMsg-draft { |
| | |
| | | .popupMsg-tab-card-item-active .popupMsg-tab-card-item-bg { |
| | | border-radius: 20rpx 20rpx 0px 0px; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .popupMsg-form { |
| | | background-color: #ffffff; |
| | | padding: 8rpx 32rpx; |
| | | } |
| | | |
| | | .popupMsg-form .cell { |
| | | padding: 48rpx 0; |
| | | } |
| | | |
| | | .popupMsg-form .cell-noPadding { |
| | | margin-top: -48rpx; |
| | | } |
| | | |
| | | .popupMsg-check { |
| | |
| | | right: 0; |
| | | display: flex; |
| | | padding: 32rpx var(--padding-my); |
| | | background-color: var(--bg-color); |
| | | background-color: #fff; |
| | | z-index: 99; |
| | | } |
| | | |
| | |
| | | font-size: 12px; |
| | | color: #d1021c; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .popup-scroll { |
| | | height: 1100rpx; |
| | | width: 100%; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .popup-scroll { |
| | | height: 1100rpx; |
| | | width: 100%; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .popup-scroll-xz .van-popup--round { |
| | | width: 100%; |
| | | border-radius: 0 !important; |
| | | } |
| | | |
| | | .popup-scroll-main { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .popup-scroll-body { |
| | | flex: 1; |
| | | } |
| | | |
| | | .popup-scroll-head { |
| | | text-align: center; |
| | | padding: 0 32rpx 16rpx; |
| | | border-bottom: 2rpx dashed rgba(126, 134, 142, 0.24); |
| | | margin-bottom: 24rpx; |
| | | font-size: 34rpx; |
| | | } |
| | | |
| | | .popup-button { |
| | | padding: 32rpx 32rpx 24rpx; |
| | | margin-top: 24rpx; |
| | | border-top: 1rpx solid #E5E6EB; |
| | | } |
| | | |
| | | .popup-button-no { |
| | | font-size: 28rpx; |
| | | text-align: center; |
| | | padding: 24rpx 0 0; |
| | | text-decoration: underline; |
| | | } |
New file |
| | |
| | | // pages/speechToText/index.js |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | recordMannager: wx.getRecorderManager(), |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | key: '', |
| | | value: '', |
| | | showModal: false, //按住说话显示 |
| | | }, |
| | | |
| | | // 录音结束触发 |
| | | _endRecord(e) { |
| | | this._transferText(e); |
| | | }, |
| | | |
| | | touchStart(e) { |
| | | let that = this; |
| | | wx.getSetting({ |
| | | success(res) { |
| | | if (res.authSetting['scope.record'] === false) { |
| | | $$.hideLoading(); |
| | | $$.showModal({ |
| | | content: '抱歉!此功能需授权麦克风录音功能', |
| | | confirmText: '跳转授权', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | wx.openSetting({ |
| | | success(res) { |
| | | if (res.authSetting['scope.record']) { |
| | | $$.showToast({ |
| | | title: '授权成功' |
| | | }); |
| | | } else { |
| | | $$.showToast({ |
| | | title: '授权失败' |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | return false; |
| | | } |
| | | that.setData({ |
| | | showModal: true |
| | | }); |
| | | // 开始说话 |
| | | const options = { |
| | | duration: 60000, |
| | | sampleRate: 16000, |
| | | numberOfChannels: 1, |
| | | encodeBitRate: 96000, |
| | | format: 'pcm', |
| | | }; |
| | | that.recordMannager.start(options); |
| | | that.recordMannager.onStart(() => console.log('开始录音')); |
| | | that.recordMannager.onError((e) => { |
| | | console.log('onError', e); |
| | | $$.showToast({ |
| | | title: '抱歉!录音时间过短,请重新录入' |
| | | }); |
| | | that.setData({ |
| | | second: 60, |
| | | showModal: false |
| | | }); |
| | | }); |
| | | |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | touchEnd() { |
| | | let that = this; |
| | | that.recordMannager.onStop((e) => that._endRecord(e)); |
| | | that.recordMannager.stop(); |
| | | that.setData({ |
| | | showModal: false |
| | | }) |
| | | console.log('结束录音'); |
| | | }, |
| | | |
| | | |
| | | |
| | | // 语音转文字 |
| | | _transferText(e) { |
| | | console.log('开始识别', e); |
| | | $$.showLoading(); |
| | | let speakUrl = e.tempFilePath; |
| | | let that = this; |
| | | wx.uploadFile({ |
| | | url: `${$$.baseUrl}${$$.url.sys}/api/wechat/xfyun/speech`, |
| | | filePath: speakUrl, |
| | | name: 'fileNames', |
| | | header: { |
| | | Authorization: app.globalData.token |
| | | }, |
| | | complete(res) { |
| | | $$.hideLoading(); |
| | | if (res.errMsg === 'uploadFile:ok') { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = JSON.parse(res.data); |
| | | if (code === '0' || code === 0) { |
| | | that.setData({ |
| | | value: that.data.value + data || '', |
| | | }); |
| | | } else { |
| | | $$.showToast({ |
| | | icon: 'error', |
| | | title: msg |
| | | }); |
| | | } |
| | | } else { |
| | | $$.showToast({ |
| | | icon: 'error', |
| | | title: '录音转写失败' |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 表单修改 |
| | | handleChange(e) { |
| | | let key = e.currentTarget.dataset.key, |
| | | value = e.detail; |
| | | this.setData({ |
| | | value: value, |
| | | [key]: value.length |
| | | }); |
| | | }, |
| | | |
| | | // 下一步 or 上一步 |
| | | handleNext(e) { |
| | | // 获取当前页面栈 |
| | | var pages = getCurrentPages(); |
| | | |
| | | console.log('this.data.value', this.data.value); |
| | | console.log('this.data.key', this.data.key); |
| | | // 上一个页面 |
| | | var prevPage = pages[pages.length - 2]; |
| | | // 直接设置数据对象到上一页面的data中 |
| | | prevPage.setData({ |
| | | twoValue: this.data.value, |
| | | twoKey: this.data.key, |
| | | }); |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }) |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | let { |
| | | type |
| | | } = options |
| | | console.log('type', type); |
| | | this.setData({ |
| | | key: type |
| | | }) |
| | | }, |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "按住说话", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <!--pages/speechToText/index.wxml--> |
| | | <block class="card"> |
| | | <view class="speechToText-main"> |
| | | <block wx:if="{{key==='caseDes'}}"> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text>事项概况</text></view> |
| | | <van-field custom-style="padding:0 20rpx;line-height:90rpx; margin-bottom:32rpx" autosize="{{ { maxHeight: 470, minHeight: 470 } }}" bind:change="handleChange" border="{{ false }}" maxlength='2000' data-key="caseDesNum" placeholder="请完整描述事项概况,应具备5要素:发生时间+发生地点+人物情况+事项起因+事项经过" type="textarea" value="{{ value }}" /> |
| | | </view> |
| | | <view class="textarea-foot"> |
| | | <view class="textarea-limit">{{caseDesNum||0}}/2000字</view> |
| | | <view class="textarea-ability"> |
| | | <!-- <view bindtouchstart="touchStart" bindtouchend="touchEnd" class="textarea-img"> --> |
| | | <view bindtouchstart="touchStart" bindtouchend="touchEnd" class="textarea-img"> |
| | | <image src="{{imgUrl}}voiceOcr.png" mode="" />按住说话 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <block wx:else> |
| | | <view class="cell-item"> |
| | | <view class="cell-title"><text><text class="cell-required">*</text>事项申请</text></view> |
| | | <van-field custom-style="padding:0 20rpx;line-height:90rpx" autosize="{{ { maxHeight: 470, minHeight: 470 } }}" bind:change="handleChange" border="{{ false }}" maxlength='500' data-key="caseClaimNum" placeholder="希望相关部门如何处理,建议分条描述,如请求1,请求2..." type="textarea" value="{{ value }}" /> |
| | | </view> |
| | | <view class="textarea-foot"> |
| | | <view class="textarea-limit">{{caseClaimNum||0}}/500字</view> |
| | | <view class="textarea-ability"> |
| | | <view bindtouchstart="touchStart" bindtouchend="touchEnd" class="textarea-img"> |
| | | <image src="{{imgUrl}}voiceOcr.png" mode="" />按住说话 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <view wx:if="{{showModal}}" class="modal-card"> |
| | | <!-- <image class="modal-img" src="{{imgUrl}}speechToText.png" mode="" /> --> |
| | | <view class="recording"> |
| | | <!-- 语音动画 --> |
| | | <block> |
| | | <view class="time-box"> |
| | | <view class="time-box-top"> |
| | | <view class="hr hr1" /> |
| | | <view class="hr hr2" /> |
| | | <view class="hr hr3" /> |
| | | <view class="hr hr4" /> |
| | | <view class="hr hr5" /> |
| | | <view class="hr hr6" /> |
| | | <view class="hr hr7" /> |
| | | <view class="hr hr8" /> |
| | | <view class="hr hr9" /> |
| | | <view class="hr hr10" /> |
| | | </view> |
| | | <view class="time-box-bottom"> |
| | | <view class="hr hr1" /> |
| | | <view class="hr hr2" /> |
| | | <view class="hr hr3" /> |
| | | <view class="hr hr4" /> |
| | | <view class="hr hr5" /> |
| | | <view class="hr hr6" /> |
| | | <view class="hr hr7" /> |
| | | <view class="hr hr8" /> |
| | | <view class="hr hr9" /> |
| | | <view class="hr hr10" /> |
| | | </view> |
| | | </view> |
| | | <view class="recording-title">松开结束,上滑取消</view> |
| | | </block> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="submitButton" catch:tap=""> |
| | | <view style="flex: 1;"> |
| | | <van-button bind:click="handleNext" block data-type="next" type="primary">保存</van-button> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="modal"> |
| | | |
| | | </view> |
| | | </block> |
New file |
| | |
| | | /* pages/speechToText/index.wxss */ |
| | | |
| | | .submitButton { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | display: flex; |
| | | padding: 32rpx var(--padding-my); |
| | | background-color: #fff; |
| | | z-index: 99; |
| | | } |
| | | |
| | | .speechToText-main { |
| | | position: relative; |
| | | } |
| | | |
| | | .cell-item { |
| | | padding: 24rpx 32rpx 24rpx 12rpx; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .cell-title { |
| | | margin-bottom: 8rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .cell-required { |
| | | color: #d1021c; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .textarea-foot { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: #fff; |
| | | align-items: center; |
| | | padding-left: 32rpx; |
| | | /* margin-bottom: 96rpx; */ |
| | | } |
| | | |
| | | .textarea-limit { |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | color: rgba(23, 26, 29, 0.40); |
| | | } |
| | | |
| | | .textarea-ability { |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: rgba(182, 221, 241, 0.46); |
| | | padding: 16rpx; |
| | | border-radius: 20px 0px 0px 0px; |
| | | color: var(--main-color); |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .textarea-img { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 8rpx; |
| | | } |
| | | |
| | | .textarea-img image { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | } |
| | | |
| | | .card { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | |
| | | .modal-card { |
| | | position: absolute; |
| | | width: 200px; |
| | | height: 140px; |
| | | background: rgba(95, 166, 212, 0.80); |
| | | color: #fff; |
| | | border-radius: 4px; |
| | | top: 40%; |
| | | left: 23%; |
| | | text-align: center; |
| | | } |
| | | |
| | | .modal-img { |
| | | width: 144px; |
| | | height: 120px; |
| | | } |
| | | |
| | | .modal-title {} |
| | | |
| | | .time-box { |
| | | position: relative; |
| | | height: 120rpx; |
| | | left: 50%; |
| | | margin-left: -86rpx; |
| | | } |
| | | |
| | | .time-box-top { |
| | | position: absolute; |
| | | bottom: 50%; |
| | | } |
| | | |
| | | .time-box-bottom { |
| | | position: absolute; |
| | | top: 50%; |
| | | transform: rotateX(180deg); |
| | | } |
| | | |
| | | .hr { |
| | | background-color: red; |
| | | width: 10rpx; |
| | | height: 10rpx; |
| | | bottom: 0; |
| | | position: absolute; |
| | | background: #ffffff; |
| | | animation: bodong 0.5s infinite ease; |
| | | border-top-left-radius: 5rpx; |
| | | border-top-right-radius: 5rpx; |
| | | } |
| | | |
| | | .hr1 { |
| | | left: 0; |
| | | animation-delay: 1s; |
| | | animation-duration: 1s; |
| | | } |
| | | |
| | | .hr2 { |
| | | left: 18rpx; |
| | | animation-delay: 0.9s; |
| | | animation-duration: 0.9s; |
| | | } |
| | | |
| | | .hr3 { |
| | | left: 36rpx; |
| | | animation-delay: 0.8s; |
| | | animation-duration: 0.8s; |
| | | } |
| | | |
| | | .hr4 { |
| | | left: 54rpx; |
| | | animation-delay: 0.7s; |
| | | animation-duration: 0.7s; |
| | | } |
| | | |
| | | .hr5 { |
| | | left: 72rpx; |
| | | animation-delay: 0.6s; |
| | | animation-duration: 0.6s; |
| | | } |
| | | |
| | | .hr6 { |
| | | left: 90rpx; |
| | | animation-delay: 0.5s; |
| | | animation-duration: 0.5s; |
| | | } |
| | | |
| | | .hr7 { |
| | | left: 108rpx; |
| | | animation-delay: 0.7s; |
| | | animation-duration: 0.7s; |
| | | } |
| | | |
| | | .hr8 { |
| | | left: 126rpx; |
| | | animation-delay: 0.6s; |
| | | animation-duration: 0.6s; |
| | | } |
| | | |
| | | .hr9 { |
| | | left: 144rpx; |
| | | animation-delay: 0.8s; |
| | | animation-duration: 0.8s; |
| | | } |
| | | |
| | | .hr10 { |
| | | left: 162rpx; |
| | | animation-delay: 1s; |
| | | animation-duration: 1s; |
| | | } |
| | | |
| | | @keyframes bodong { |
| | | 0% { |
| | | height: 10rpx; |
| | | } |
| | | |
| | | 20% { |
| | | height: 20rpx; |
| | | } |
| | | |
| | | 30% { |
| | | height: 30rpx; |
| | | } |
| | | |
| | | 60% { |
| | | height: 60rpx; |
| | | } |
| | | |
| | | 80% { |
| | | height: 30rpx; |
| | | } |
| | | |
| | | 100% { |
| | | height: 10rpx; |
| | | } |
| | | } |
| | | |
| | | .recording { |
| | | position: absolute; |
| | | width: 350rpx; |
| | | padding: 48rpx 0; |
| | | top: 2%; |
| | | left: 50%; |
| | | margin-left: -175rpx; |
| | | text-align: center; |
| | | color: #ffffff; |
| | | font-size: 28rpx; |
| | | } |
| | | |
| | | .cell-phone .van-button { |
| | | color: var(--main-color); |
| | | border: none !important; |
| | | padding: 0 !important; |
| | | } |
New file |
| | |
| | | // pages/ssimDetail/index.js |
| | | const $$ = require('../../utils/util'); |
| | | |
| | | function getByIdApi(param) { |
| | | return $$.request({ |
| | | url: 'ctUnit/getById', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'cust' |
| | | }) |
| | | } |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | data: { |
| | | data: {}, |
| | | }, |
| | | |
| | | |
| | | // 获取纠纷案件详情 |
| | | async getById(data) { |
| | | $$.showLoading(); |
| | | const res = await getByIdApi({ |
| | | id: data.id |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res.type) { |
| | | let data = res.data || {}; |
| | | this.setData({ |
| | | data |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad(options) { |
| | | this.getById(options); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | }) |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "综治中心详情", |
| | | "usingComponents": { |
| | | } |
| | | } |
New file |
| | |
| | | <!--pages/ssimDetail/index.wxml--> |
| | | <common-page> |
| | | <view class="card"> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">服务中心名称</view> |
| | | <view>{{ data.unitName || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">办公地址</view> |
| | | <view>{{ data.addr || '-' }}</view> |
| | | </view> |
| | | <map longitude="113.2038664" latitude="23.1622136" show-location="false" scale="16" style="width: 100%; height: 280rpx;"></map> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">邮政编码</view> |
| | | <view>{{ data.postalCode || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">联系电话</view> |
| | | <view>{{ data.dutyMobile || '-' }}</view> |
| | | </view> |
| | | <view class="cell3"> |
| | | <view class="cell-title-placeholder">办公时间</view> |
| | | <view>{{data.workTimeWeek||'-'}}</view> |
| | | <view>{{data.workTimeAm||'-'}}</view> |
| | | <view>{{data.workTimePm||'-'}}</view> |
| | | </view> |
| | | </view> |
| | | </common-page> |
New file |
| | |
| | | /* pages/ssimDetail/index.wxss */ |
| | | .card { |
| | | padding: 24rpx 32rpx; |
| | | background-color: #ffffff; |
| | | border-radius: var(--border-radius-card); |
| | | } |
| | | |
| | | .cell3 { |
| | | margin-bottom: 16rpx; |
| | | } |
| | | |
| | | .cell-title-placeholder { |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | color: rgba(0, 0, 0, 0.5); |
| | | } |
New file |
| | |
| | | const $$ = require('../../utils/util'); |
| | | const app = getApp(); |
| | | import Toast from '../../components/vant/toast/toast'; |
| | | |
| | | function pageZzQueryApi(param) { |
| | | return $$.request({ |
| | | url: 'ctUnit/pageZzQuery', |
| | | type: 'get', |
| | | submitData: param || {}, |
| | | service: 'cust' |
| | | }) |
| | | } |
| | | |
| | | Page({ |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | | userInfo: {}, |
| | | location: [], // 省市区等地理资源 |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | search: { |
| | | prov: '', |
| | | provName: '', |
| | | city: '', |
| | | cityName: '', |
| | | area: '', |
| | | areaName: '', |
| | | road: '', |
| | | roadName: '', |
| | | keyword: '', |
| | | page: 1, |
| | | size: 10, |
| | | }, // 查询条件 |
| | | data: [], // 数据 |
| | | total: 0, // 总数 |
| | | popup: { |
| | | formtype: '', |
| | | index: 0, |
| | | }, // 下拉弹出框数据 |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // 下拉框选择确认 |
| | | handleConfirmPicker({ |
| | | detail |
| | | }) { |
| | | let type = this.data.popup.type, |
| | | value = detail.detail.value, |
| | | arr = []; |
| | | this.data.popup.visible = false; |
| | | if (type === 'caseCause') { |
| | | arr = ['caseType', 'caseTypeName']; |
| | | arr.forEach((x, t) => { |
| | | this.data.search[x] = value[0][t === 0 ? 'value' : 'label']; |
| | | }); |
| | | } else if (type === 'location') { |
| | | arr = [ |
| | | ['city', 'cityName'], |
| | | ['area', 'areaName'], |
| | | ['road', 'roadName'], |
| | | ]; |
| | | arr.forEach((x, t) => { |
| | | this.data.search[x[0]] = value[t]?.value || ''; |
| | | this.data.search[x[1]] = value[t]?.label || ''; |
| | | }); |
| | | } |
| | | this.setData({ |
| | | popup: this.data.popup, |
| | | search: this.data.search |
| | | }); |
| | | }, |
| | | |
| | | // 多行下拉选择时,省市区选择 |
| | | handleChangeColumns(e) { |
| | | if (this.data.popup.type === 'location') { |
| | | let selectData = $$.changeLocation(e, this.location, this.data.popup.selectData); |
| | | this.setData({ |
| | | popup: { |
| | | ...this.data.popup, |
| | | selectData |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 下拉框选择开启 |
| | | handleShowPopup(e) { |
| | | let type = e.currentTarget.dataset.type; |
| | | let selectData = []; |
| | | if (type === 'location') { |
| | | if (this.location.length === 0) { |
| | | return false; |
| | | } |
| | | let selectOption = JSON.parse(JSON.stringify(this.location)); |
| | | let arr = $$.getLocationIndex(this.location, this.data.search); // 计算默认的市区县下标 |
| | | selectData = [{ |
| | | values: selectOption, |
| | | defaultIndex: arr[0] |
| | | }, |
| | | { |
| | | values: selectOption[arr[0]].children, |
| | | defaultIndex: arr[1] |
| | | }, |
| | | { |
| | | values: selectOption[arr[0]].children[arr[1]].children || [], |
| | | defaultIndex: arr[2] |
| | | }, |
| | | ]; |
| | | selectData.forEach((x) => { |
| | | x.values.forEach((y) => { |
| | | delete y.children; |
| | | }); |
| | | }); |
| | | } else { |
| | | let selectOption = this.select[type]; |
| | | selectData = [{ |
| | | values: selectOption, |
| | | defaultIndex: 0 |
| | | }]; |
| | | } |
| | | this.setData({ |
| | | popup: { |
| | | formtype: e.currentTarget.dataset.formtype, |
| | | index: e.currentTarget.dataset.index, |
| | | visible: true, |
| | | title: e.currentTarget.dataset.title, |
| | | type: type, |
| | | selectData: selectData, |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 关闭下拉框选择 |
| | | handleClosePopup() { |
| | | this.data.popup.visible = false; |
| | | this.setData({ |
| | | popup: this.data.popup |
| | | }); |
| | | }, |
| | | |
| | | searchButton() { |
| | | this.pageZzQuery(this.data.search) |
| | | }, |
| | | |
| | | async pageZzQuery(params, type) { |
| | | $$.showLoading(); |
| | | const res = await pageZzQueryApi(params); |
| | | $$.hideLoading(); |
| | | if (this.data.loading) { |
| | | this.setData({ |
| | | loading: false |
| | | }); |
| | | } |
| | | if (res.type) { |
| | | if (params.page === 1) { |
| | | this.data.data = res.data.content || []; |
| | | } else { |
| | | this.data.data = this.data.data.concat(res.data.content || []); |
| | | } |
| | | this.setData({ |
| | | search: params, |
| | | data: this.data.data, |
| | | total: res.data.totalElements || 0 |
| | | }); |
| | | if (type === 'onPullDownRefresh') { |
| | | $$.showToast({ |
| | | title: '已是最新记录', |
| | | duration: 1000 |
| | | }); |
| | | wx.stopPullDownRefresh(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 关闭底部弹窗 |
| | | handleClosePopupMsg() { |
| | | if (this.data.popupMsg.type === 1) { |
| | | this.getUserInfo(this.data.popupMsg.intentionObj); |
| | | } else { |
| | | this.setData({ |
| | | popupMsg: { |
| | | show: false |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 滚动到底部获取案件 |
| | | handlescrolltolower() { |
| | | if (this.data.data.length >= this.data.total) { |
| | | return false; |
| | | } |
| | | if (!this.data.loading) { |
| | | this.data.loading = true; |
| | | this.setData({ |
| | | loading: this.data.loading |
| | | }); |
| | | let submitData = { |
| | | ...this.data.search |
| | | }; |
| | | submitData.page = submitData.page + 1; |
| | | this.pageZzQuery(submitData); |
| | | } |
| | | }, |
| | | |
| | | // 返回首页 |
| | | handleGoHomepage() { |
| | | if (this.data.changeVisible) { |
| | | wx.navigateBack({ |
| | | delta: 1, |
| | | }); |
| | | return false; |
| | | } |
| | | wx.reLaunch({ |
| | | url: '../../pages/homePage/index', |
| | | }); |
| | | }, |
| | | |
| | | // 获取省市区等地理资源 |
| | | async getLocationData() { |
| | | $$.showLoading(); |
| | | const res = await $$.commonRequest({ |
| | | url: `${$$.url.assets}locationSelect.json`, |
| | | type: 'get' |
| | | }); |
| | | $$.hideLoading(); |
| | | if (res) { |
| | | let location = []; |
| | | $$.province.forEach((x) => { |
| | | location.push(res[x][0]); |
| | | }); |
| | | this.location = location; |
| | | } |
| | | }, |
| | | |
| | | // 跳转详情 |
| | | _handleGoPage(e) { |
| | | let url = e.currentTarget.dataset.url; |
| | | let id = e.currentTarget.dataset.id; |
| | | wx.navigateTo({ |
| | | url: url + '?id=' + id, |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | | onLoad: function (options) { |
| | | this.pageZzQuery(this.data.search) |
| | | this.getLocationData(); |
| | | }, |
| | | |
| | | onShow: function () { |
| | | // this.pageZzQuery(this.data.search); |
| | | }, |
| | | |
| | | onHide: function () {}, |
| | | |
| | | onUnload: function () {}, |
| | | }); |
New file |
| | |
| | | { |
| | | "navigationBarTitleText": "综治中心查询", |
| | | "usingComponents": {} |
| | | } |
New file |
| | |
| | | <van-toast id="van-toast" /> |
| | | |
| | | <common-page bind:onCancelPicker="handleClosePopup" bind:onChangePicker="handleChangeColumns" bind:onClosePopup="handleClosePopup" bind:onConfirmPicker="handleConfirmPicker" popup="{{ popup }}"> |
| | | <view class="ssimList"> |
| | | <!-- 综治中心查询 --> |
| | | <view class="card"> |
| | | <view class="cell"> |
| | | <view bindtap="handleShowPopup" data-type="location" class="cell-arrow cell-left"> |
| | | <view class="cell-left-l">{{ search.roadName ? search.roadName : '未选择' }}</view> |
| | | <van-icon name="arrow-down" /> |
| | | </view> |
| | | <view style="width:16rpx"></view> |
| | | <view class="cell-right"> |
| | | <van-icon name="search" /> |
| | | <van-field bind:change="handleChange" border="{{ false }}" custom-style="padding:0;background-color:#f2f3f5" data-key="keyword" placeholder="请输入中心名称" value="{{ search.keyword }}" /> |
| | | <view style="color:#E5E6EB">|</view> |
| | | <view bindtap="searchButton" class="public-color">查询</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <!-- 列表 --> |
| | | <van-empty description="暂无数据" wx:if="{{ total === 0 }}" /> |
| | | <view class="ssim-scroll" wx:else> |
| | | <scroll-view bindscrolltolower="handlescrolltolower" scroll-y="true" style="height: 100%;"> |
| | | <view class="card-box" wx:for="{{ data }}" wx:key="index"> |
| | | <view class="card-list" bindtap="_handleGoPage" data-id="{{ item.id }}" data-url="../../pages/ssimDetail/index"> |
| | | <view class="card-title">{{item.unitName}}</view> |
| | | <view class="card-subTitle"><text class="card-subTitle-l">办公地址:</text>{{item.addr}}</view> |
| | | <view class="card-subTitle"><text class="card-subTitle-l">联系电话:</text>{{item.dutyMobile}}</view> |
| | | </view> |
| | | </view> |
| | | <block> |
| | | <van-divider contentPosition="center" custom-style="margin-top: 12px;" wx:if="{{ data.length >= total && data.length !== 0 }}">没有更多了</van-divider> |
| | | <view class="myMediate-scroll-loading" wx:if="{{ loading }}"> |
| | | <van-loading type="spinner" /> |
| | | </view> |
| | | </block> |
| | | </scroll-view> |
| | | </view> |
| | | <view class="safeHeight" /> |
| | | </view> |
| | | </common-page> |
New file |
| | |
| | | @import '../../styles/public_components.wxss'; |
| | | |
| | | .ssimList { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | position: absolute; |
| | | left: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | .card { |
| | | background-color: #ffffff; |
| | | padding: 0 24rpx; |
| | | } |
| | | |
| | | .cell-left { |
| | | display: flex; |
| | | width: 28%; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | background: #f2f3f5; |
| | | padding: 12rpx 16rpx; |
| | | border-radius: 10rpx; |
| | | } |
| | | |
| | | .cell-left-l { |
| | | text-align: right; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | font-size: var(--font-size-md, 14px); |
| | | } |
| | | |
| | | .cell-right { |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | background: #f2f3f5; |
| | | padding: 12rpx 16rpx; |
| | | border-radius: 10rpx; |
| | | font-size: var(--font-size-md, 14px); |
| | | } |
| | | |
| | | .card-box { |
| | | padding: 24rpx 24rpx 0 24rpx; |
| | | } |
| | | |
| | | .card { |
| | | border-radius: 2px; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .card-list { |
| | | border-radius: 2px; |
| | | background-color: #fff; |
| | | padding: 24rpx |
| | | } |
| | | |
| | | .ssim-scroll { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .card-title { |
| | | font-size: 30rpx; |
| | | line-height: 46rpx; |
| | | } |
| | | |
| | | .card-subTitle { |
| | | padding-top: 8rpx; |
| | | } |
| | | |
| | | .card-subTitle-l { |
| | | color: rgba(23, 26, 29, 0.60); |
| | | } |
| | |
| | | { |
| | | "projectname": "wx-party", |
| | | "projectname": "gz-wxparty", |
| | | "setting": { |
| | | "compileHotReLoad": true, |
| | | "urlCheck": false |
| | | "urlCheck": false, |
| | | "bigPackageSizeSupport": true |
| | | }, |
| | | "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
| | | "libVersion": "2.24.2" |
| | |
| | | page { |
| | | /* color */ |
| | | /* 主色 */ |
| | | --main-color: #d10202; |
| | | /* page背景色 */ |
| | | --bg-color: #f0f2f5; |
| | | /* 主色拓展 */ |
| | | --red-1: #ffeae6; |
| | | /* Color Palette */ |
| | | --black: #000; |
| | | --white: #fff; |
| | | --gray-1: #f7f8fa; |
| | | --gray-2: #f2f3f5; |
| | | --gray-3: #ebedf0; |
| | | --gray-4: #dcdee0; |
| | | --gray-5: #c8c9cc; |
| | | --gray-6: #969799; |
| | | --gray-7: #646566; |
| | | --gray-8: #323233; |
| | | --red: #ee0a24; |
| | | --blue: #1989fa; |
| | | --orange: #ff976a; |
| | | --orange-dark: #ed6a0c; |
| | | --orange-light: #fffbe8; |
| | | --green: #07c160; |
| | | /* font-color */ |
| | | --text-color: rgba(0, 0, 0, 0.85); |
| | | --second-text-color: rgba(0, 0, 0, 0.65); |
| | | /* color */ |
| | | /* 主色 */ |
| | | --main-color: #1A6FB8; |
| | | /* page背景色 */ |
| | | --bg-color: #f0f2f5; |
| | | /* 主色拓展 */ |
| | | --red-1: #ffeae6; |
| | | /* Color Palette */ |
| | | --black: #000; |
| | | --white: #fff; |
| | | --gray-1: rgba(255,255,255,0.60); |
| | | --gray-2: #f2f3f5; |
| | | --gray-3: #ebedf0; |
| | | --gray-4: #dcdee0; |
| | | --gray-5: #c8c9cc; |
| | | --gray-6: #969799; |
| | | --gray-7: #646566; |
| | | --gray-8: #323233; |
| | | --red: #ee0a24; |
| | | --blue: #1989fa; |
| | | --orange: #ff976a; |
| | | --orange-dark: #ed6a0c; |
| | | --orange-light: #fffbe8; |
| | | --green: #07c160; |
| | | /* font-color */ |
| | | --text-color: rgba(0, 0, 0, 0.85); |
| | | --second-text-color: rgba(0, 0, 0, 0.65); |
| | | |
| | | /* font */ |
| | | --font-size-main: 28rpx; |
| | | --line-height-main: 44rpx; |
| | | --font-size-xs: 20rpx; |
| | | --font-size-sm: 24rpx; |
| | | --font-size-md: 28rpx; |
| | | --font-size-lg: 32rpx; |
| | | --font-weight-bold: 600; |
| | | --line-height-xs: 28rpx; |
| | | --line-height-sm: 36rpx; |
| | | --line-height-md: 44rpx; |
| | | --line-height-lg: 44rpx; |
| | | --base-font-family: system-ui; |
| | | /* font */ |
| | | --font-size-main: 30rpx; |
| | | --line-height-main: 46rpx; |
| | | --font-size-xs: 20rpx; |
| | | --font-size-sm: 24rpx; |
| | | --font-size-md: 30rpx; |
| | | --font-size-lg: 32rpx; |
| | | --font-weight-bold: 600; |
| | | --line-height-xs: 28rpx; |
| | | --line-height-sm: 36rpx; |
| | | --line-height-md: 44rpx; |
| | | --line-height-lg: 44rpx; |
| | | --base-font-family: system-ui; |
| | | |
| | | /* Component Colors */ |
| | | --active-color: var(--gray-2); |
| | | --active-opacity: 0.7; |
| | | --disabled-opacity: 0.5; |
| | | --background-color: var(--gray-1); |
| | | --background-color-light: #fafafa; |
| | | --text-link-color: #576b95; |
| | | /* Component Colors */ |
| | | --active-color: var(--gray-2); |
| | | --active-opacity: 0.7; |
| | | --disabled-opacity: 0.5; |
| | | --background-color: var(--gray-1); |
| | | --background-color-light: #fafafa; |
| | | --text-link-color: #576b95; |
| | | |
| | | /* Animation */ |
| | | --animation-duration-base: 0.3s; |
| | | --animation-duration-fast: 0.2s; |
| | | /* Animation */ |
| | | --animation-duration-base: 0.3s; |
| | | --animation-duration-fast: 0.2s; |
| | | |
| | | /* padding */ |
| | | --padding-my: 20rpx; |
| | | --padding-base: 8rpx; |
| | | --padding-xs: 16rpx; |
| | | --padding-sm: 24rpx; |
| | | --padding-md: 32rpx; |
| | | --padding-lg: 48rpx; |
| | | --padding-xl: 64rpx; |
| | | /* padding */ |
| | | --padding-my: 32rpx; |
| | | --padding-base: 8rpx; |
| | | --padding-xs: 16rpx; |
| | | --padding-sm: 24rpx; |
| | | --padding-md: 32rpx; |
| | | --padding-lg: 48rpx; |
| | | --padding-xl: 64rpx; |
| | | |
| | | /* Border */ |
| | | --border-color: rgba(0, 0, 0, 0.1); |
| | | --border-radius-card: 20rpx; |
| | | --border-radius-card-sm: 10rpx; |
| | | --border-width-base: 2rpx; |
| | | --border-radius-sm: 4rpx; |
| | | --border-radius-md: 8rpx; |
| | | --border-radius-lg: 16rpx; |
| | | /* Border */ |
| | | --border-color: rgba(0, 0, 0, 0.1); |
| | | --border-radius-card: 20rpx; |
| | | --border-radius-card-sm: 10rpx; |
| | | --border-width-base: 2rpx; |
| | | --border-radius-sm: 4rpx; |
| | | --border-radius-md: 8rpx; |
| | | --border-radius-lg: 16rpx; |
| | | |
| | | /* Button */ |
| | | --button-mini-height: 44rpx; |
| | | --button-mini-min-width: 100rpx; |
| | | --button-mini-font-size: var(--font-size-xs); |
| | | --button-small-height: 60rpx; |
| | | --button-small-font-size: var(--font-size-sm); |
| | | --button-small-min-width: 120rpx; |
| | | --button-normal-font-size: var(--font-size-md); |
| | | --button-large-height: 100rpx; |
| | | --button-default-color: var(--text-color); |
| | | --button-default-height: 80rpx; |
| | | --button-default-font-size: var(--font-size-lg); |
| | | --button-default-background-color: var(--white); |
| | | --button-default-border-color: var(--border-color); |
| | | --button-primary-color: var(--white); |
| | | --button-primary-background-color: var(--main-color); |
| | | --button-primary-border-color: var(--main-color); |
| | | --button-info-color: var(--white); |
| | | --button-info-background-color: var(--blue); |
| | | --button-info-border-color: var(--blue); |
| | | --button-danger-color: var(--white); |
| | | --button-danger-background-color: var(--red); |
| | | --button-danger-border-color: var(--red); |
| | | --button-warning-color: var(--white); |
| | | --button-warning-background-color: var(--orange); |
| | | --button-warning-border-color: var(--orange); |
| | | --button-line-height: 44rpx; |
| | | --button-border-width: 2rpx; |
| | | --button-border-radius: var(--border-radius-md); |
| | | --button-round-border-radius: var(--border-radius-max); |
| | | --button-plain-background-color: var(--white); |
| | | --button-disabled-opacity: var(--disabled-opacity); |
| | | /* Button */ |
| | | --button-mini-height: 44rpx; |
| | | --button-mini-min-width: 100rpx; |
| | | --button-mini-font-size: var(--font-size-xs); |
| | | --button-small-height: 60rpx; |
| | | --button-small-font-size: var(--font-size-sm); |
| | | --button-small-min-width: 120rpx; |
| | | --button-normal-font-size: var(--font-size-md); |
| | | --button-large-height: 100rpx; |
| | | --button-default-color: var(--text-color); |
| | | --button-default-height: 80rpx; |
| | | --button-default-font-size: var(--font-size-lg); |
| | | --button-default-background-color: var(--white); |
| | | --button-default-border-color: var(--border-color); |
| | | --button-primary-color: var(--white); |
| | | --button-primary-background-color: var(--main-color); |
| | | --button-primary-border-color: var(--main-color); |
| | | --button-info-color: var(--white); |
| | | --button-info-background-color: var(--blue); |
| | | --button-info-border-color: var(--blue); |
| | | --button-danger-color: var(--white); |
| | | --button-danger-background-color: var(--red); |
| | | --button-danger-border-color: var(--red); |
| | | --button-warning-color: var(--white); |
| | | --button-warning-background-color: var(--orange); |
| | | --button-warning-border-color: var(--orange); |
| | | --button-line-height: 44rpx; |
| | | --button-border-width: 2rpx; |
| | | --button-border-radius: var(--border-radius-md); |
| | | --button-round-border-radius: var(--border-radius-max); |
| | | --button-plain-background-color: var(--white); |
| | | --button-disabled-opacity: var(--disabled-opacity); |
| | | |
| | | /* Tabbar */ |
| | | --tabbar-height: 92rpx; |
| | | --tabbar-background-color: var(--white); |
| | | /* Tabbar */ |
| | | --tabbar-height: 92rpx; |
| | | --tabbar-background-color: var(--white); |
| | | |
| | | /* TabbarItem */ |
| | | --tabbar-item-font-size: var(--font-size-sm); |
| | | --tabbar-item-text-color: var(--text-color); |
| | | --tabbar-item-active-color: var(--main-color); |
| | | --tabbar-item-line-height: 1; |
| | | --tabbar-item-icon-size: 36rpx; |
| | | --tabbar-item-margin-bottom: 8rpx; |
| | | /* TabbarItem */ |
| | | --tabbar-item-font-size: var(--font-size-sm); |
| | | --tabbar-item-text-color: var(--text-color); |
| | | --tabbar-item-active-color: var(--main-color); |
| | | --tabbar-item-line-height: 1; |
| | | --tabbar-item-icon-size: 36rpx; |
| | | --tabbar-item-margin-bottom: 8rpx; |
| | | |
| | | /* Tab */ |
| | | --tab-text-color: var(--gray-7); |
| | | --tab-active-text-color: var(--text-color); |
| | | --tab-disabled-text-color: var(--gray-5); |
| | | --tab-font-size: var(--font-size-md); |
| | | /* Tab */ |
| | | --tab-text-color: var(--gray-7); |
| | | --tab-active-text-color: var(--text-color); |
| | | --tab-disabled-text-color: var(--gray-5); |
| | | --tab-font-size: var(--font-size-md); |
| | | |
| | | /* Tabs */ |
| | | --tabs-default-color: var(--main-color); |
| | | --tabs-line-height: 48rpx; |
| | | --tabs-card-height: 60rpx; |
| | | --tabs-nav-background-color: var(--white); |
| | | --tabs-bottom-bar-height: 4rpx; |
| | | --tabs-bottom-bar-color: var(--tabs-default-color); |
| | | /* Tabs */ |
| | | --tabs-default-color: var(--main-color); |
| | | --tabs-line-height: 48rpx; |
| | | --tabs-card-height: 60rpx; |
| | | --tabs-nav-background-color: var(--white); |
| | | --tabs-bottom-bar-height: 4rpx; |
| | | --tabs-bottom-bar-color: var(--tabs-default-color); |
| | | |
| | | /* Field */ |
| | | --field-label-color: var(--gray-7); |
| | | --field-input-text-color: var(--text-color); |
| | | --field-input-error-text-color: var(--red); |
| | | --field-input-disabled-text-color: var(--gray-5); |
| | | --field-placeholder-text-color: rgba(0, 0, 0, 0.5); |
| | | --field-icon-size: 32rpx; |
| | | --field-clear-icon-size: 32rpx; |
| | | --field-clear-icon-color: var(--gray-5); |
| | | --field-icon-container-color: var(--gray-6); |
| | | --field-error-message-color: var(--red); |
| | | --field-error-message-text-font-size: var(--font-size-sm); |
| | | --field-text-area-min-height: 36rpx; |
| | | --field-word-limit-color: var(--gray-7); |
| | | --field-word-limit-font-size: var(--font-size-sm); |
| | | --field-word-limit-line-height: 32rpx; |
| | | --field-word-num-full-color: var(--red); |
| | | --field-disabled-text-color: var(--gray-5); |
| | | /* Field */ |
| | | --field-label-color: var(--gray-7); |
| | | --field-input-text-color: var(--text-color); |
| | | --field-input-error-text-color: var(--red); |
| | | --field-input-disabled-text-color: var(--gray-5); |
| | | --field-placeholder-text-color: rgba(0, 0, 0, 0.5); |
| | | --field-icon-size: 32rpx; |
| | | --field-clear-icon-size: 32rpx; |
| | | --field-clear-icon-color: var(--gray-5); |
| | | --field-icon-container-color: var(--gray-6); |
| | | --field-error-message-color: var(--red); |
| | | --field-error-message-text-font-size: var(--font-size-sm); |
| | | --field-text-area-min-height: 36rpx; |
| | | --field-word-limit-color: var(--gray-7); |
| | | --field-word-limit-font-size: var(--font-size-sm); |
| | | --field-word-limit-line-height: 32rpx; |
| | | --field-word-num-full-color: var(--red); |
| | | --field-disabled-text-color: var(--gray-5); |
| | | |
| | | /* Cell */ |
| | | --cell-font-size: var(--font-size-md); |
| | | --cell-line-height: var(--line-height-md); |
| | | --cell-vertical-padding: var(--padding-sm); |
| | | --cell-horizontal-padding: var(--padding-md); |
| | | --cell-text-color: var(--text-color); |
| | | --cell-background-color: var(--white); |
| | | --cell-border-color: var(--border-color); |
| | | --cell-active-color: var(--active-color); |
| | | --cell-required-color: var(--red); |
| | | --cell-label-color: var(--gray-6); |
| | | --cell-label-font-size: var(--font-size-sm); |
| | | --cell-label-line-height: 36rpx; |
| | | --cell-label-margin-top: 6rpx; |
| | | --cell-value-color: var(--gray-6); |
| | | --cell-icon-size: 32rpx; |
| | | --cell-right-icon-color: var(--gray-6); |
| | | --cell-large-vertical-padding: var(--padding-sm); |
| | | --cell-large-title-font-size: var(--font-size-lg); |
| | | --cell-large-value-font-size: var(--font-size-lg); |
| | | --cell-large-label-font-size: var(--font-size-md); |
| | | /* Cell */ |
| | | --cell-font-size: var(--font-size-md); |
| | | --cell-line-height: var(--line-height-md); |
| | | --cell-vertical-padding: var(--padding-sm); |
| | | --cell-horizontal-padding: var(--padding-md); |
| | | --cell-text-color: var(--text-color); |
| | | --cell-background-color: var(--white); |
| | | --cell-border-color: var(--border-color); |
| | | --cell-active-color: var(--active-color); |
| | | --cell-required-color: var(--red); |
| | | --cell-label-color: var(--gray-6); |
| | | --cell-label-font-size: var(--font-size-sm); |
| | | --cell-label-line-height: 36rpx; |
| | | --cell-label-margin-top: 6rpx; |
| | | --cell-value-color: var(--gray-6); |
| | | --cell-icon-size: 32rpx; |
| | | --cell-right-icon-color: var(--gray-6); |
| | | --cell-large-vertical-padding: var(--padding-sm); |
| | | --cell-large-title-font-size: var(--font-size-lg); |
| | | --cell-large-value-font-size: var(--font-size-lg); |
| | | --cell-large-label-font-size: var(--font-size-md); |
| | | |
| | | /* CellGroup */ |
| | | --cell-group-background-color: var(--white); |
| | | --cell-group-title-color: var(--gray-6); |
| | | --cell-group-title-padding: var(--padding-md) var(--padding-md) var(--padding-xs); |
| | | --cell-group-title-font-size: var(--font-size-md); |
| | | --cell-group-title-line-height: 32rpx; |
| | | --cell-group-inset-padding: 0 var(--padding-my); |
| | | --cell-group-inset-border-radius: var(--border-radius-lg); |
| | | --cell-group-inset-title-padding: var(--padding-md) var(--padding-md) var(--padding-xs) var(--padding-xl); |
| | | /* CellGroup */ |
| | | --cell-group-background-color: var(--white); |
| | | --cell-group-title-color: var(--gray-6); |
| | | --cell-group-title-padding: var(--padding-md) var(--padding-md) var(--padding-xs); |
| | | --cell-group-title-font-size: var(--font-size-md); |
| | | --cell-group-title-line-height: 32rpx; |
| | | --cell-group-inset-padding: 0 var(--padding-my); |
| | | --cell-group-inset-border-radius: var(--border-radius-lg); |
| | | --cell-group-inset-title-padding: var(--padding-md) var(--padding-md) var(--padding-xs) var(--padding-xl); |
| | | |
| | | /* Checkbox */ |
| | | --checkbox-size: 40rpx; |
| | | --checkbox-border-color: var(--gray-5); |
| | | --checkbox-transition-duration: 0.2s; |
| | | --checkbox-label-margin: 20rpx; |
| | | --checkbox-label-color: --text-color; |
| | | --checkbox-checked-icon-color: var(--main-color); |
| | | --checkbox-disabled-icon-color: var(--gray-5); |
| | | --checkbox-disabled-label-color: var(--gray-5); |
| | | --checkbox-disabled-background-color: var(--border-color); |
| | | /* Checkbox */ |
| | | --checkbox-size: 40rpx; |
| | | --checkbox-border-color: var(--gray-5); |
| | | --checkbox-transition-duration: 0.2s; |
| | | --checkbox-label-margin: 20rpx; |
| | | --checkbox-label-color: --text-color; |
| | | --checkbox-checked-icon-color: var(--main-color); |
| | | --checkbox-disabled-icon-color: var(--gray-5); |
| | | --checkbox-disabled-label-color: var(--gray-5); |
| | | --checkbox-disabled-background-color: var(--border-color); |
| | | |
| | | /* Popup */ |
| | | --popup-background-color: var(--white); |
| | | --popup-round-border-radius: 20rpx; |
| | | --popup-close-icon-size: 36rpx; |
| | | --popup-close-icon-color: var(--black); |
| | | --popup-close-icon-margin: 32rpx; |
| | | --popup-close-icon-z-index: 1; |
| | | /* Popup */ |
| | | --popup-background-color: var(--white); |
| | | --popup-round-border-radius: 20rpx; |
| | | --popup-close-icon-size: 36rpx; |
| | | --popup-close-icon-color: var(--black); |
| | | --popup-close-icon-margin: 32rpx; |
| | | --popup-close-icon-z-index: 1; |
| | | |
| | | /* Search */ |
| | | --search-background-color: #ffffff; |
| | | --search-padding: 16rpx var(--padding-my); |
| | | --search-input-height: 68rpx; |
| | | --search-label-padding: 0 10rpx; |
| | | --search-label-color: var(--text-color); |
| | | --search-label-font-size: var(--font-size-md); |
| | | --search-left-icon-color: var(--gray-6); |
| | | --search-action-padding: 0 var(--padding-xs); |
| | | --search-action-text-color: var(--text-color); |
| | | --search-action-font-size: var(--font-size-md); |
| | | /* Search */ |
| | | --search-background-color: #ffffff; |
| | | --search-padding: 16rpx var(--padding-my); |
| | | --search-input-height: 68rpx; |
| | | --search-label-padding: 0 10rpx; |
| | | --search-label-color: var(--text-color); |
| | | --search-label-font-size: var(--font-size-md); |
| | | --search-left-icon-color: var(--gray-6); |
| | | --search-action-padding: 0 var(--padding-xs); |
| | | --search-action-text-color: var(--text-color); |
| | | --search-action-font-size: var(--font-size-md); |
| | | |
| | | /* Toast */ |
| | | --toast-max-width: 90%; |
| | | --toast-font-size: 28rpx; |
| | | --toast-text-color: var(--white); |
| | | --toast-line-height: 40rpx; |
| | | --toast-border-radius: var(--border-radius-lg); |
| | | --toast-background-color: var(--second-text-color); |
| | | --toast-icon-size: 72rpx; |
| | | --toast-text-min-width: 192rpx; |
| | | --toast-text-padding: var(--padding-xs) var(--padding-sm); |
| | | --toast-default-padding: var(--padding-md); |
| | | --toast-default-width: 176rpx; |
| | | --toast-default-min-height: 176rpx; |
| | | /* Toast */ |
| | | --toast-max-width: 90%; |
| | | --toast-font-size: 28rpx; |
| | | --toast-text-color: var(--white); |
| | | --toast-line-height: 40rpx; |
| | | --toast-border-radius: var(--border-radius-lg); |
| | | --toast-background-color: var(--second-text-color); |
| | | --toast-icon-size: 72rpx; |
| | | --toast-text-min-width: 192rpx; |
| | | --toast-text-padding: var(--padding-xs) var(--padding-sm); |
| | | --toast-default-padding: var(--padding-md); |
| | | --toast-default-width: 176rpx; |
| | | --toast-default-min-height: 176rpx; |
| | | |
| | | /* Radio */ |
| | | --radio-size: 40rpx; |
| | | --radio-border-color: var(--gray-5); |
| | | --radio-transition-duration: 0.2s; |
| | | --radio-label-margin: 20rpx; |
| | | --radio-label-color: var(--text-color); |
| | | --radio-checked-icon-color: var(--main-color); |
| | | --radio-disabled-icon-color: var(--gray-5); |
| | | --radio-disabled-label-color: var(--gray-5); |
| | | --radio-disabled-background-color: var(--border-color); |
| | | /* Radio */ |
| | | --radio-size: 40rpx; |
| | | --radio-border-color: var(--gray-5); |
| | | --radio-transition-duration: 0.2s; |
| | | --radio-label-margin: 20rpx; |
| | | --radio-label-color: var(--text-color); |
| | | --radio-checked-icon-color: var(--main-color); |
| | | --radio-disabled-icon-color: var(--gray-5); |
| | | --radio-disabled-label-color: var(--gray-5); |
| | | --radio-disabled-background-color: var(--border-color); |
| | | |
| | | /* Switch */ |
| | | --switch-width: 2em; |
| | | --switch-height: 1em; |
| | | --switch-node-size: 1em; |
| | | --switch-node-z-index: 1; |
| | | --switch-node-background-color: var(--white); |
| | | --switch-node-box-shadow: 0 6rpx 2rpx 0 rgba(0, 0, 0, 0.05), 0 4rpx 4rpx 0 rgba(0, 0, 0, 0.1), 0 6rpx 6rpx 0 rgba(0, 0, 0, 0.05); |
| | | --switch-background-color: var(--white); |
| | | --switch-on-background-color: var(--main-color); |
| | | --switch-transition-duration: 0.3s; |
| | | --switch-disabled-opacity: 0.4; |
| | | --switch-border: 2rpx solid rgba(0, 0, 0, 0.1); |
| | | /* Switch */ |
| | | --switch-width: 2em; |
| | | --switch-height: 1em; |
| | | --switch-node-size: 1em; |
| | | --switch-node-z-index: 1; |
| | | --switch-node-background-color: var(--white); |
| | | --switch-node-box-shadow: 0 6rpx 2rpx 0 rgba(0, 0, 0, 0.05), 0 4rpx 4rpx 0 rgba(0, 0, 0, 0.1), 0 6rpx 6rpx 0 rgba(0, 0, 0, 0.05); |
| | | --switch-background-color: var(--white); |
| | | --switch-on-background-color: var(--main-color); |
| | | --switch-transition-duration: 0.3s; |
| | | --switch-disabled-opacity: 0.4; |
| | | --switch-border: 2rpx solid rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | |
| | | |
| | | .cell-title, |
| | | .cell-title-line { |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | font-size: 30rpx; |
| | | line-height: 46rpx; |
| | | font-weight: 600; |
| | | } |
| | | |
| | |
| | | |
| | | .cell-placeholder { |
| | | flex: 1; |
| | | font-size: 28rpx; |
| | | line-height: 44rpx; |
| | | font-size: 30rpx; |
| | | line-height: 46rpx; |
| | | color: rgba(0, 0, 0, 0.5); |
| | | } |
| | | |
| | |
| | | |
| | | let baseUrl = isDebug ? api.url.debug : api.url.web; |
| | | |
| | | let visitUrl = `${baseUrl}${api.url[service] || ''}/api/${v1 ? 'v1' : 'weChat'}/${url}`; |
| | | let visitUrl = `${baseUrl}${api.url[service] || ''}/api/${v1 ? 'v1' : 'wechat'}/${url}`; |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | wx.request({ |
| | |
| | | return wx.showModal({ |
| | | content: content, |
| | | showCancel: showCancel, |
| | | confirmColor: '#d10202', |
| | | confirmColor: '#1A6FB8', |
| | | title: title, |
| | | cancelText: cancelText, |
| | | confirmText: confirmText, |
| | |
| | | return false; |
| | | } |
| | | let realStatus = wx.getStorageSync('userInfo')?.realStatus; |
| | | if (realStatus !== '1' && (type === 'realName' || type === 'all')) { |
| | | if (realStatus !== 1 && (type === 'realName' || type === 'all')) { |
| | | if (direction !== 'bottom') { |
| | | showModal({ |
| | | content: '检测到您未进行实名认证,该操作需先进行实名认证,是否前往认证?', |
| | |
| | | // 组合省市区街道展示 |
| | | function showLocation(value) { |
| | | var villageName = value.villageName ? '/' + value.villageName : ''; |
| | | return value.provName + '/' + value.cityName + '/' + value.areaName + '/' + value.roadName + villageName; |
| | | var villageName = value.villageName ? '/' + value.villageName : ''; |
| | | // return value.provName + '/' + value.cityName + '/' + value.areaName + '/' + value.roadName + villageName; |
| | | return value.cityName + '/' + value.areaName + '/' + value.roadName + villageName; |
| | | } |
| | | // 判断文件类型 |
| | | function fileType(value) { |
| | | var obj = { |
| | | '22_00017-0': '未分类', |
| | | '22_00017-1': '音频', |
| | | '22_00017-2': '视频', |
| | | '22_00017-3': '图片', |
| | | '22_00017-4': 'Word文档', |
| | | '22_00017-5': 'Excel文档', |
| | | '22_00017-6': 'PDF文件', |
| | | '22_00017-7': 'txt文本', |
| | | '22_00017-8': '压缩文件', |
| | | '22_00017-9': 'PPT文件', |
| | | '22_00017-99': '其它文件', |
| | | }; |
| | | return obj[value]; |
| | | var obj = { |
| | | '22_00017-0': '未分类', |
| | | '22_00017-1': '音频', |
| | | '22_00017-2': '视频', |
| | | '22_00017-3': '图片', |
| | | '22_00017-4': 'Word文档', |
| | | '22_00017-5': 'Excel文档', |
| | | '22_00017-6': 'PDF文件', |
| | | '22_00017-7': 'txt文本', |
| | | '22_00017-8': '压缩文件', |
| | | '22_00017-9': 'PPT文件', |
| | | '22_00017-99': '其它文件', |
| | | }; |
| | | return obj[value]; |
| | | } |
| | | // 字符串转变数组 |
| | | function strArr(value) { |
| | | if (!value) { |
| | | return ['无']; |
| | | } |
| | | var arr = value.split(','); |
| | | return arr; |
| | | if (!value) { |
| | | return ['无']; |
| | | } |
| | | var arr = value.split(','); |
| | | return arr; |
| | | } |
| | | |
| | | module.exports = { |
| | | showLocation: showLocation, |
| | | fileType: fileType, |
| | | strArr: strArr, |
| | | }; |
| | | showLocation: showLocation, |
| | | fileType: fileType, |
| | | strArr: strArr, |
| | | }; |