瀏覽代碼

fix:修改上传图片功能、页面上传图片调整、页面数据调整

master
xiaohei 1 年之前
父節點
當前提交
cf91976460
共有 16 個檔案被更改,包括 519 行新增611 行删除
  1. +22
    -41
      src/packages/enterprise/pages/issue-appeal/issue-appeal.vue
  2. +6
    -6
      src/packages/my/pages/certification/certification.vue
  3. +3
    -3
      src/packages/my/pages/create-server-record/create-server-record.vue
  4. +23
    -39
      src/packages/my/pages/my-masses/my-masses-appraise.vue
  5. +9
    -9
      src/packages/my/pages/my-masses/my-masses-details.vue
  6. +11
    -5
      src/packages/my/pages/my-masses/my-masses-reply.vue
  7. +3
    -3
      src/packages/people/pages/masses-appraise/masses-appraise.vue
  8. +386
    -409
      src/packages/people/pages/masses-create/masses-create.vue
  9. +13
    -13
      src/packages/people/pages/masses-detail/masses-detail.vue
  10. +23
    -38
      src/packages/people/pages/mediate-create/mediate-create.vue
  11. +3
    -6
      src/packages/people/pages/second/second.vue
  12. +3
    -3
      src/packages/public/pages/inquiry/inquiry-detail.vue
  13. +2
    -1
      src/packages/public/pages/web-view/web-view.vue
  14. +2
    -1
      src/pages/my/my.vue
  15. +2
    -2
      src/utils/upload.js
  16. +8
    -32
      src/utils/util.js

+ 22
- 41
src/packages/enterprise/pages/issue-appeal/issue-appeal.vue 查看文件

@@ -58,10 +58,11 @@
<textarea class="textarea card-content" :value="form.appealContent" @input="headleInput"
data-name="appealContent" maxlength="200" placeholder="请输入诉求内容,文字不超过200字"></textarea>
<view class="mt-16">
<van-uploader :file-list="fileList" :deletable="true" :after-read="afterRead" max-count="9"
@delete="imageDelete">
<van-icon name="/src/images/camera.png" size="80px" />
</van-uploader>
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true"
max-count="9">
<van-icon name="/src/images/camera.png" size="80px" />
</van-uploader>

<view class="mt-16 card-block">附件不超过9个,每个大小不超过1M</view>
</view>
</view>
@@ -224,46 +225,26 @@
this[name] = Listname === 'enterpriseList' ? List[e.detail.value].id : List[e.detail.value].value
},

// 清楚对应的image图片
imageDelete(event) {
const {
index
} = event.detail;
const Image = this.fileList;
Image.splice(index, 1);
this.fileList = Image
},
beforeDelete(file, dateil) {
this.appealEnclosure.splice(dateil.index, 1);
this.fileList.splice(dateil.index, 1)
},

// 上传图片
async afterRead(event) {
console.log(event)
const {
file
} = event;
const res = await getApp().globalData.upload({
file
});
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
icon: 'none'
});
return false;
}
const {
fileList
} = this;
const {
appealEnclosure
} = this;
const url = res.data;
fileList.push({
url
const {
file
} = event;

const res = await getApp().globalData.upload({ file });
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
icon: 'none'
});
appealEnclosure.push(url);
this.fileList = fileList,
this.appealEnclosure = appealEnclosure
},
return false;
}
this.appealEnclosure.push(res.data);
},

// 输入框重新赋值
headleInput(event) {


+ 6
- 6
src/packages/my/pages/certification/certification.vue 查看文件

@@ -100,9 +100,9 @@
const {
file
} = event.detail;
// const res = await app.globalData.upload({
// file
// });
const res = await getApp().globalData.upload({
file
});
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
@@ -120,9 +120,9 @@
const {
file
} = event.detail;
// const res = await app.globalData.upload({
// file
// });
const res = await getApp().globalData.upload({
file
});
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',


+ 3
- 3
src/packages/my/pages/create-server-record/create-server-record.vue 查看文件

@@ -181,9 +181,9 @@
const {
file
} = event.detail;
// const res = await app.globalData.upload({
// file
// });
const res = await getApp().globalData.upload({
file
});
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',


+ 23
- 39
src/packages/my/pages/my-masses/my-masses-appraise.vue 查看文件

@@ -1,5 +1,5 @@
<template>
<view style="height: 100%">
<view>
<custom-nav-bar position="fixed" color="black" :left-text="options.type === 'reply' ? '回复' : '修改'" left-arrow />

<view class="form-list">
@@ -12,10 +12,10 @@
</view>
<view class="form-item form-item-checkbox">
<view class="label-image">
<van-uploader @after-read="afterRead" :file-list="fileList" :deletable="true" max-count="9"
@delete="imageDelete">
<image class="label-image-camera" src="/static/images/icon9.png"></image>
</van-uploader>
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true"
max-count="9">
<image class="label-image-camera" src="/static/images/icon9.png" ></image>
</van-uploader>
</view>
<view class="label-image-msg">附件不超过9个</view>
</view>
@@ -42,7 +42,8 @@ export default {
replyContent: '',
replyImages: ''
},
fileList: [] // 上传的图片
fileList: [], // 上传的图片
appealEnclosure:[]
};
},
onLoad(options) {
@@ -116,38 +117,25 @@ export default {
}
},

// 上传图片
async afterRead(event) {
// 如果设置上传图片多选file则为数组
const {
file
} = event.detail;
// const {
// data = ''
// } = await app.globalData.upload({
// file
// });
const {
fileList
} = this;
fileList.push({
url: data
});
this.setData({
fileList
});
},
} = event;

// 删除图片
imageDelete(event) {
const {
index
} = event.detail;
const Image = this.fileList;
Image.splice(index, 1);
this.setData({
fileList: Image
});
const res = await getApp().globalData.upload({ file });
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
icon: 'none'
});
return false;
}
// this.fileList.push({url:res.data})
this.appealEnclosure.push(res.data);
},
beforeDelete(file, dateil) {
this.appealEnclosure.splice(dateil.index, 1);
this.fileList.splice(dateil.index, 1)
},

headleInput(event) {
@@ -161,11 +149,7 @@ export default {
},

handSubmit() {
this.setData({
'form.replyImages': this.fileList.map((item) => {
return item.url;
})
});
this.form.replyImages = this.appealEnclosure

// 标识哪些数据为必填
if (!this.form.replyContent) {


+ 9
- 9
src/packages/my/pages/my-masses/my-masses-details.vue 查看文件

@@ -75,10 +75,10 @@
</view>
<view class="view">
<view class="flex flex-v-center">
<image class="inquiry-icon" :src="replyInfo.doctorPhoto" />
<image class="inquiry-icon" v-if="replyInfo" :src="replyInfo.doctorPhoto" />
<view class="inquiry-label">
<text class="inquiry-title">{{ replyInfo.replyUserName }}</text>
<text class="time">{{ toods.getDateTime(replyInfo.createTime) }}</text>
<text class="inquiry-title" v-if="replyInfo">{{ replyInfo.replyUserName }}</text>
<text class="time">{{ getDateTime(replyInfo.createTime) }}</text>
</view>
</view>
<view class="inquiry-conent">{{ replyInfo.replyContent }}</view>
@@ -99,7 +99,7 @@
</view>
<view class="mt-28">
<view>{{ messsDetail.appraiseContent }}</view>
<view class="detail-appraise-image" v-if="messsDetail.appraiseImage.length">
<view class="detail-appraise-image" v-if="messsDetail">
<image :src="item" v-for="(item, index) in messsDetail.appraiseImage" :key="index"></image>
</view>
</view>
@@ -160,7 +160,7 @@
seekHelptype: [],
show: false,
userInfoCount: null,
replyInfo: null,
replyInfo: {},

t: {
value: '',
@@ -269,6 +269,7 @@
},

handrReply(event) {
console.log(event)
const {
item,
type
@@ -296,12 +297,11 @@
},

async healedOrder(event, _dataset) {
console.log(event)
console.log(_dataset)
/* ---处理dataset begin--- */
this.handleDataset(event, _dataset);
// this.handleDataset(event, _dataset);
/* ---处理dataset end--- */
const {
item
} = event.currentTarget.dataset;
const res = await peopleApi.seekHelpApi({
id: item.id
});


+ 11
- 5
src/packages/my/pages/my-masses/my-masses-reply.vue 查看文件

@@ -20,8 +20,10 @@
<view class="thenMesses-bg bg-orange">
<view class="hide thenMesses-title" style="padding-right: 100rpx">{{ item.title }}</view>
<view class="absolute orange">
<text v-if="item.type + '' === t.value" v-for="(t, index1) in seekHelptype"
:key="index1">{{ t.label }}</text>
<block v-for="(t, index1) in seekHelptype"
:key="index1">
<text v-if="item.type + '' === t.value" >{{ t.label }}</text>
</block>
</view>
<view :class="
'thenMesses-hint ' +
@@ -57,7 +59,7 @@
<rich-text class="rich-text" :nodes="item.content"></rich-text>
</view>

<view class="thenMesses-content-image" v-if="item.images.length">
<view class="thenMesses-content-image" v-if="item.images">
<image :src="it" v-for="(it, index1) in item.images" :key="index1"></image>
</view>

@@ -72,11 +74,11 @@
<image src="/static/images/ic-success.png" mode="aspectFill"></image>
<text>{{ item.reply.replyUserName }}</text>
</view>
<view class="myAppeal-conent-block">{{ toods.getDateTime(item.reply.createTime, 0) }}</view>
<view class="myAppeal-conent-block">{{ getDateTime(item.reply.createTime, 0) }}</view>
</view>
<view class="myAppeal-bg-conent flex flex-col">
<rich-text :nodes="item.reply.replyContent"></rich-text>
<view class="inquiry-image" v-if="item.reply.replyImages.length">
<view class="inquiry-image" v-if="item.reply.replyImages">
<image class="image" :src="item" v-for="(item, index1) in item.reply.replyImages" :key="index1">
</image>
</view>
@@ -99,6 +101,7 @@

import * as publicApi from '@/api/publicApi';
import * as myApi from '@/api/myApi';
import utils from '@/utils/util.map'
const partyMember = [{
icon: '/static/packages/my/image/order.png',
name: '已接单',
@@ -148,6 +151,9 @@
this.seekHelpPageApi();
},
methods: {
getDateTime(tiem){
return utils.getDateTime(tiem)
},
async seekHelpPageApi() {
let params = {
pageNo: this.pageNo,


+ 3
- 3
src/packages/people/pages/masses-appraise/masses-appraise.vue 查看文件

@@ -78,9 +78,9 @@
const {
file
} = event.detail;
// const res = await app.globalData.upload({
// file
// });
const res = await getApp().globalData.upload({
file
});
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',


+ 386
- 409
src/packages/people/pages/masses-create/masses-create.vue 查看文件

@@ -51,8 +51,8 @@
<textarea class="textarea-class" maxlength="500" @input="headleInput" data-name="content" placeholder="请输入内容"
auto-height :value="form.content"></textarea>
<view class="form-image">
<van-uploader :after-read="afterRead" :file-list="fileList" :deletable="true" max-count="9"
@delete="imageDelete">
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true"
max-count="9">
<image class="camera" src="/static/images/icon9.png"></image>
</van-uploader>
</view>
@@ -91,7 +91,8 @@
</view>

<view class="form-treaty">
<van-checkbox label-disabled checked-color="red" v-model="checked" shape="square" use-icon-slot @change="onCheckbox">
<van-checkbox label-disabled checked-color="red" v-model="checked" shape="square" use-icon-slot
@change="onCheckbox">
<!-- <image class="ic-check"
:src="checked ? '/static/images/ic-radio1.png' : '/static/images/ic-radio.png'" /> -->
<view class="checbox-text flex">
@@ -114,15 +115,8 @@


<van-popup v-model:show="isVisible" round position="bottom">
<van-cascader
v-model="currentValue"
title="请选择所在地区"
:options="optionData"
:field-names="defaultFieldNames"
@finish="onCloseVisible"
@close="onCloseVisible"
@change="onChangeVisible"
/>
<van-cascader v-model="currentValue" title="请选择所在地区" :options="optionData" :field-names="defaultFieldNames"
@finish="onCloseVisible" @close="onCloseVisible" @change="onChangeVisible" />
</van-popup>

<!-- <wux-cascader :visible="isVisible" title="所在村/社区" :options="optionData" :safe-area-inset-bottom="true"
@@ -131,459 +125,442 @@
</template>

<script>
const app = getApp().globalData
console.log(app)
// const {
// publicApi,
// peopleApi
// } = app.globalData.api;
import * as peopleApi from '@/api/peopleApi';
import * as publicApi from '@/api/publicApi';
export default {
components: {
},
data() {
return {
userInfoData: uni.getStorageSync('userInfoData'),

// 上传图片所需
appealEnclosure: [],

fileList: [],

form: {
address: '',
posX: '',
posY: '',
content: '',
title: '',
mobile: '',
orgId: 0,
name: null,
type: 1,
showFlag: 1
},

checked: false,

columns: [{
id: 1,
type: '求助'
},
{
id: 2,
type: '帮助'
}
],

agreeList: [{
label: '否',
value: 0
},
{
label: '是',
value: 1
}
],

// 级连选择器数据 start
isVisible: false,
FiledVisible:true,

optionData: [],
currentTile: '请选择',

// 选择后的名称
currentValue: null,

// 选择后的id
// 级联选择默认显示字段
// 级连选择器数据 end
defaultFieldNames: {
text: 'name',
value: 'id',
children: 'children'
},

isDialog: false,
name: '',
label: ''
};
},
onLoad() {
// this.form.address = app.globalData.config.locationInfo.name;
// this.form.posX = app.globalData.config.locationInfo.latitude;
// this.form.posY = app.globalData.config.locationInfo.longitude;
const userInfoData = uni.getStorageSync('userInfoData');
this.isDialog = true
this.form = this.form
this.userInfoData = userInfoData
this.deptTreeApi();
this.getTypeApi();
},
methods: {
// 获取群众点单字典
async getTypeApi() {
const res = await publicApi.getDictDataApi({
dictType: 'people_seek_help_type',
pageNo: 1,
pageSize: 100
});
if (res.data) {
this.columns = res.data.list
}
},

/**
* 接口
*/
async deptTreeApi() {
// 获取所在村/社区
const res = await publicApi.deptTreeApi();
if (res.data && res.data.length) {
this.optionData = res.data
}
},

async afterRead(event) {
const {
file
} = event;
const res = await getApp().globalData.upload({file});
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
icon: 'none'
});
return false;
}
const {
fileList
} = this;
const {
appealEnclosure
} = this;
const url = res.data;
fileList.push({
url
});
appealEnclosure.push(url);
this.fileList = fileList
this.appealEnclosure = appealEnclosure
const app = getApp().globalData
console.log(app)
// const {
// publicApi,
// peopleApi
// } = app.globalData.api;
import * as peopleApi from '@/api/peopleApi';
import * as publicApi from '@/api/publicApi';
export default {
components: {
},
data() {
return {
userInfoData: uni.getStorageSync('userInfoData'),

// 上传图片所需
appealEnclosure: [],

fileList: [],

form: {
address: '',
posX: '',
posY: '',
content: '',
title: '',
mobile: '',
orgId: 0,
name: null,
type: 1,
showFlag: 1
},

async submit() {
const {
address,
content,
mobile,
name,
posX,
posY,
status,
title,
type,
showFlag
} = this.form;
const params = {
address,
content,
mobile,
name,
posX,
posY,
status,
title,
type,
showFlag,
userId: this.userInfoData.userId,
status: 1,
images: [],
orgId: this.currentValue
};
params.images = this.fileList.map((item) => {
return item.url;
});
params.type = this.columns[Number(params.type)].value;
if (type === '' || title === '' || content === '' || !params.orgId) {
let toastTitle = '';
if (type === '') {
toastTitle = '请选择信息类型';
} else if (title === '') {
toastTitle = '请输入标题';
} else if (content === '') {
toastTitle = '请输入描述';
} else if (!params.orgId) {
toastTitle = '请选择所在村/社区';
} else {
toastTitle = '带*属于必填项';
}
uni.showToast({
title: toastTitle,
icon: 'none'
});
return false;
}
const res = await peopleApi.seekHelpCreateApi(params);
if (res.code !== 0) {
uni.showToast({
title: res.msg,
icon: 'none'
});
return;
}
uni.showToast({
title: '发布成功',
icon: 'none'
});

wx.redirectTo({
url: '/packages/people/pages/masses/masses',
});
// 返回上一页
uni.navigateBack();
},
checked: false,

headleInput(event) {
const {
value
} = event.detail;
const {
name
} = event.currentTarget.dataset;
this.form[name] = value;
this.form = this.form
this[name] = this[name]
columns: [{
id: 1,
type: '求助'
},
{
id: 2,
type: '帮助'
}
],

// 清楚对应的image图片
imageDelete(event) {
const {
index
} = event.detail;
const Image = this.fileList;
Image.splice(index, 1);
this.fileList = Image
agreeList: [{
label: '否',
value: 0
},
{
label: '是',
value: 1
}
],

bindPickerChange: function(e) {
this.form.type = Number(e.detail.value);
this.form = this.form
},
// 级连选择器数据 start
isVisible: false,
FiledVisible: true,

bindPickerShowFlag: function(e) {
this.form.showFlag = Number(e.detail.value);
this.form = this.form
},
optionData: [],
currentTile: '请选择',

onCheckbox(event) {
this.checked = event
},
// 选择后的名称
currentValue: null,

onOpenVisible() {
this.isVisible = true
// 选择后的id
// 级联选择默认显示字段
// 级连选择器数据 end
defaultFieldNames: {
text: 'name',
value: 'id',
children: 'children'
},

onCloseVisible() {
this.isVisible = false
},
isDialog: false,
name: '',
label: ''
};
},
onLoad() {
// this.form.address = app.globalData.config.locationInfo.name;
// this.form.posX = app.globalData.config.locationInfo.latitude;
// this.form.posY = app.globalData.config.locationInfo.longitude;
const userInfoData = uni.getStorageSync('userInfoData');
console.log(userInfoData)
this.isDialog = true
this.form = this.form
this.userInfoData = userInfoData
this.deptTreeApi();
this.getTypeApi();
},
methods: {
// 获取群众点单字典
async getTypeApi() {
const res = await publicApi.getDictDataApi({
dictType: 'people_seek_help_type',
pageNo: 1,
pageSize: 100
});
if (res.data) {
this.columns = res.data.list
}
},

onChangeVisible(e) {
this.currentTile = e.selectedOptions[e.tabIndex].name
this.currentValue =e.value
/**
* 接口
*/
async deptTreeApi() {
// 获取所在村/社区
const res = await publicApi.deptTreeApi();
if (res.data && res.data.length) {
this.optionData = res.data
}
}
};
</script>
<style lang="less">
page {
background-color: #fff;
}
},

.line {
width: 100%;
height: 36rpx;
}
async afterRead(event) {
const {
file
} = event;

.red {
color: red;
}
const res = await getApp().globalData.upload({ file });
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
icon: 'none'
});
return false;
}
// this.fileList.push({url:res.data})
this.appealEnclosure.push(res.data);
},

.camera {
width: 160rpx;
height: 160rpx;
}
async submit() {
const {
address,
content,
mobile,
name,
posX,
posY,
status,
title,
type,
showFlag
} = this.form;
const params = {
address,
content,
mobile,
name,
posX,
posY,
status,
title,
type,
showFlag,
userId: this.userInfoData.userId,
status: 1,
images: [],
orgId: this.currentValue
};
params.images = this.appealEnclosure
params.type = this.columns[Number(params.type)].value;
if (type === '' || title === '' || content === '' || !params.orgId) {
let toastTitle = '';
if (type === '') {
toastTitle = '请选择信息类型';
} else if (title === '') {
toastTitle = '请输入标题';
} else if (content === '') {
toastTitle = '请输入描述';
} else if (!params.orgId) {
toastTitle = '请选择所在村/社区';
} else {
toastTitle = '带*属于必填项';
}
uni.showToast({
title: toastTitle,
icon: 'none'
});
return false;
}
const res = await peopleApi.seekHelpCreateApi(params);
if (res.code !== 0) {
uni.showToast({
title: res.msg,
icon: 'none'
});
return;
}
uni.showToast({
title: '发布成功',
icon: 'none'
});

wx.redirectTo({
url: '/packages/people/pages/masses/masses',
});
// 返回上一页
uni.navigateBack();
},

.form-list {
width: 100%;
}
headleInput(event) {
const {
value
} = event.detail;
const {
name
} = event.currentTarget.dataset;
this.form[name] = value;
this.form = this.form
this[name] = this[name]
},
beforeDelete(file, dateil) {
this.appealEnclosure.splice(dateil.index, 1);
this.fileList.splice(dateil.index, 1)
},

.form-body {
font-size: 32rpx;
font-weight: 400;
color: #333333;
padding: 40rpx 40rpx 38rpx;
position: relative;

&::before {
content: '';
position: absolute;
left: 50%;
bottom: 0;
transform: translateX(-50%);
width: 678rpx;
height: 1px;
background-color: #e1e1e1;
}
bindPickerChange: function (e) {
this.form.type = Number(e.detail.value);
this.form = this.form
},

.label {
font-size: 28rpx;
font-weight: 400;
color: #333333;
}
bindPickerShowFlag: function (e) {
this.form.showFlag = Number(e.detail.value);
this.form = this.form
},

.label-value {
font-size: 32rpx;
font-weight: 500;
color: #000000;
line-height: 32rpx;

.ic-xia {
margin-left: 27rpx;
width: 32rpx;
height: 32rpx;
}
}
onCheckbox(event) {
this.checked = event
},

.picker {
margin-top: 24rpx;
}
onOpenVisible() {
this.isVisible = true
},

.picker-text {
font-size: 32rpx;
font-weight: 400;
color: #999999;
}
onCloseVisible() {
this.isVisible = false
},

.picker-line {
flex: 1;
onChangeVisible(e) {
this.currentTile = e.selectedOptions[e.tabIndex].name
this.currentValue = e.value
}
}
};
</script>
<style lang="less">
page {
background-color: #fff;
}

.line {
width: 100%;
height: 36rpx;
}

.red {
color: red;
}

.camera {
width: 160rpx;
height: 160rpx;
}

.form-list {
width: 100%;
}

.form-body {
font-size: 32rpx;
font-weight: 400;
color: #333333;
padding: 40rpx 40rpx 38rpx;
position: relative;

&::before {
content: '';
position: absolute;
left: 50%;
bottom: 0;
transform: translateX(-50%);
width: 678rpx;
height: 1px;
background-color: #e1e1e1;
}

.textarea-class {
margin-top: 26rpx;
width: 100%;
font-size: 32rpx;
font-weight: 400;
}
.label {
font-size: 28rpx;
font-weight: 400;
color: #333333;
}

.form-msg {
font-size: 26rpx;
font-weight: 400;
color: #999999;
line-height: 26rpx;
margin-top: 28rpx;
}
.label-value {
font-size: 32rpx;
font-weight: 500;
color: #000000;
line-height: 32rpx;

.location {
.ic-xia {
margin-left: 27rpx;
width: 32rpx;
height: 32rpx;
}
}

.location-info {
margin-top: 26rpx;

input {
font-size: 32rpx;
font-weight: 400;
}
}
.picker {
margin-top: 24rpx;
}

.form-col {
display: flex;
align-items: center;
justify-content: space-between;
text-align: right;
.picker-text {
font-size: 32rpx;
font-weight: 400;
color: #999999;
}

.textarea-class {
margin-top: 0;
}
.picker-line {
flex: 1;
}

.card-placeholder {
font-size: 32rpx;
font-weight: 400;
color: #000000;
}
.textarea-class {
margin-top: 26rpx;
width: 100%;
font-size: 32rpx;
font-weight: 400;
}

.form-location {
padding: 20rpx 35rpx;
border-radius: 16rpx;
.form-msg {
font-size: 26rpx;
font-weight: 400;
color: #999999;
line-height: 26rpx;
margin-top: 28rpx;
}

.form-treaty {
padding: 83rpx 40rpx 32rpx;
.location {
width: 32rpx;
height: 32rpx;
}

.ic-check {
width: 32rpx;
height: 32rpx;
}
.location-info {
margin-top: 26rpx;

.checbox-text {
font-size: 28rpx;
input {
font-size: 32rpx;
font-weight: 400;
color: #000000;
line-height: 28rpx;

.jump-to {
color: var(--item-dominant-color);
}
}
}
}

.form-col {
display: flex;
align-items: center;
justify-content: space-between;
text-align: right;

.form-button {
padding: 25rpx 36rpx;
.textarea-class {
margin-top: 0;
}

.form-button-body {
height: 80rpx;
.card-placeholder {
font-size: 32rpx;
font-weight: 400;
color: #ffffff;
line-height: 80rpx;
text-align: center;
background: #c1c1c1;
border-radius: 8rpx;
color: #000000;
}
}

.form-button-body-select {
background: var(--item-dominant-color);
}
.form-location {
padding: 20rpx 35rpx;
border-radius: 16rpx;
}

.form-image {
margin: 20rpx 0rpx 20rpx 0;
display: flex;
align-items: center;
flex-wrap: wrap;
}
.form-treaty {
padding: 83rpx 40rpx 32rpx;

.form-image>view {
width: 31.3%;
position: relative;
margin-right: 13.5rpx;
.ic-check {
width: 32rpx;
height: 32rpx;
}

.form-image>view>image:nth-child(1) {
width: 100%;
height: 200rpx;
border-radius: 10rpx;
}
.checbox-text {
font-size: 28rpx;
font-weight: 400;
color: #000000;
line-height: 28rpx;

.form-image>view>image:nth-child(2) {
position: absolute;
top: -0rpx;
right: 0rpx;
width: 40rpx;
height: 40rpx;
.jump-to {
color: var(--item-dominant-color);
}
}
}

.form-button {
padding: 25rpx 36rpx;
}

.form-button-body {
height: 80rpx;
font-size: 32rpx;
font-weight: 400;
color: #ffffff;
line-height: 80rpx;
text-align: center;
background: #c1c1c1;
border-radius: 8rpx;
}

.form-button-body-select {
background: var(--item-dominant-color);
}

.form-image {
margin: 20rpx 0rpx 20rpx 0;
display: flex;
align-items: center;
flex-wrap: wrap;
}

.form-image>view {
width: 31.3%;
position: relative;
margin-right: 13.5rpx;
}

.form-image>view>image:nth-child(1) {
width: 100%;
height: 200rpx;
border-radius: 10rpx;
}

.form-image>view>image:nth-child(2) {
position: absolute;
top: -0rpx;
right: 0rpx;
width: 40rpx;
height: 40rpx;
}
</style>

+ 13
- 13
src/packages/people/pages/masses-detail/masses-detail.vue 查看文件

@@ -1,5 +1,5 @@
<template>
<view style="height: 100%">
<view>
<custom-nav-bar position="fixed" color="black" left-text="申请党员帮办" left-arrow />

<!-- 接单显示 -->
@@ -15,8 +15,10 @@
<view class="thenMesses-bg bg-violet">
<view class="mb-2 thenMesses-title hide">{{ messsDetail.title }}</view>
<view class="absolute1 mb-2">
<text v-if="messsDetail.type + '' === t.value" v-for="(t, index) in seekHelptype"
:key="index">{{ t.label }}</text>
<block v-for="(t, index) in seekHelptype"
:key="index">
<text v-if="messsDetail.type + '' === t.value" >{{ t.label }}</text>
</block>
</view>

<view class="flex flex-v-center flex-between thenMesses-image">
@@ -71,7 +73,7 @@
<van-icon name="location" color="#999999" />
{{ messsDetail.address }}
<view class="createTime" v-if="messsDetail.createTime">
<text>{{ toods.getDateTime(messsDetail.createTime) }}</text>
<text>{{ getDateTime(messsDetail.createTime) }}</text>
</view>
</view>
<text class="slot"></text>
@@ -107,6 +109,7 @@
// const { peopleApi, publicApi } = app.globalData.api;
import * as peopleApi from '@/api/peopleApi';
import * as publicApi from '@/api/publicApi';
import utils from '@/utils/util.map'
export default {
components: {},
data() {
@@ -140,11 +143,12 @@
onLoad(val) {
this.seekHelpGetApi(val.id);
this.getTypeApi();
this.setData({
pageId: val.id
});
this.pageId = val.id
},
methods: {
getDateTime(time){
return utils.getDateTime(time)
},
async seekHelpGetApi(id) {
let params = {
id
@@ -152,9 +156,7 @@
const res = await peopleApi.seekHelpGetApi(params);
if (res.data) {
// res.data.createTime = app.globalData.util.timeFormat(res.data.createTime);
this.setData({
messsDetail: res.data
});
this.messsDetail = res.data
}
},

@@ -164,9 +166,7 @@
dictType: 'people_seek_help_type'
});
if (res.data) {
this.setData({
seekHelptype: res.data.list
});
this.seekHelptype = res.data.list
}
},



+ 23
- 38
src/packages/people/pages/mediate-create/mediate-create.vue 查看文件

@@ -71,8 +71,8 @@
<textarea class="textarea-class" @input="inputeidt" maxlength="200" data-name="descInfo"
placeholder="请输入,不超过200字" :value="form.descInfo"></textarea>
<view class="form-image">
<van-uploader @after-read="afterRead" :file-list="fileList" :deletable="true" max-count="9"
@delete="closeImage">
<van-uploader :after-read="afterRead" :before-delete="beforeDelete" v-model="fileList" :deletable="true"
max-count="9">
<image class="camera" src="/static/images/icon9.png"></image>
</van-uploader>
</view>
@@ -99,8 +99,8 @@
</van-checkbox>
</view>
<view class="form-button">
<van-button v-if="checked" disabled block color="#C1C1C1">发布信息</van-button>
<van-button @click="submit" v-if="!checked" block color="#FE3B53">发布信息</van-button>
<van-button v-if="!checked" disabled block color="#C1C1C1">发布信息</van-button>
<van-button @click="submit" v-if="checked" block color="#FE3B53">发布信息</van-button>
</view>
</view>

@@ -147,7 +147,7 @@

option: {},
fileList: [],
ImageList: [],
appealEnclosure: [],
caseType: '',

// mediatorId: '',
@@ -221,12 +221,9 @@
}
},

// 清除对应的图片
closeImage(e) {
let index = e.currentTarget.dataset.index;
var arr = this.fileList;
arr.splice(index, 1);
this.fileList = arr
beforeDelete(file, dateil) {
this.appealEnclosure.splice(dateil.index, 1);
this.fileList.splice(dateil.index, 1)
},

// 输入框输入事件
@@ -235,8 +232,7 @@
target: dataset,
detail
} = e;
let attributeName = `form.${dataset.dataset.name}`;
this[attributeName] = detail.value
this.form[`${dataset.dataset.name}`] = detail.value
console.log(this.form);
},

@@ -278,32 +274,21 @@
this.checked = event
},

// 上传图片
async afterRead(event) {
const {
file
} = event.detail;
// const res = await app.globalData.upload({
// file
// });
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
icon: 'none'
});
return false;
}
const fileList = this.fileList;
const ImageList = this.ImageList;
const url = res.data;
fileList.push({
url
});
ImageList.push(url);
this.fileList = fileList
this.fileList = ImageList
},
const {
file
} = event;

const res = await getApp().globalData.upload({ file });
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',
icon: 'none'
});
return false;
}
this.appealEnclosure.push(res.data);
},
// 字典类型
async getTypeList() {
const res = await publicApi.getDictDataApi({
@@ -340,7 +325,7 @@
caseType,
title,
descInfo,
pics: this.ImageList,
pics: this.appealEnclosure,
address: address,
status: '1',
userId: this.form.userId,


+ 3
- 6
src/packages/people/pages/second/second.vue 查看文件

@@ -231,14 +231,11 @@
if (this.searchValue) {
param.name = this.searchValue;
}
const {
data: {
list = []
}
} = await peopleApi.hospitalPageApi(param);
const res = await peopleApi.hospitalPageApi(param);
let list = res.data.list
if (list.length) {
list.forEach((e) => {
e.createTime = util.timeFormat(e.createTime, 'yyyy-mm-ss');
e.createTime = util.timeFormat(e.createTime, 'yyyy-mm-ss') || 0;
});
this.newsPageList = list
}


+ 3
- 3
src/packages/public/pages/inquiry/inquiry-detail.vue 查看文件

@@ -203,9 +203,9 @@
const {
file
} = event.detail;
// const res = await app.globalData.upload({
// file
// });
const res = await getApp().globalData.upload({
file
});
if (res.code !== 0) {
uni.showToast({
title: '上传图片失败',


+ 2
- 1
src/packages/public/pages/web-view/web-view.vue 查看文件

@@ -1,7 +1,7 @@
<template>
<view>
<custom-nav-bar position="fixed" color="black" :left-text="optins.name" left-arrow />
<web-view v-if="optins.name === '手机充值' || optins.name === '生活缴费'" :src="url"></web-view>
<web-view v-if="optins.name === '手机充值' || optins.name === '生活缴费' || optins.name === '随手拍'" :src="url"></web-view>

<image v-else class="img" mode="aspectFit" src="/static/packages/public/pages/web-view/img.jpg"
:show-menu-by-longpress="true" />
@@ -38,6 +38,7 @@
default:
break;
}
console.log(url)
this.url = url
},
methods: {}


+ 2
- 1
src/pages/my/my.vue 查看文件

@@ -317,7 +317,8 @@
const res = await myApi.getProfileUserInfoApi();
if (res.data) {
this.userInfo = res.data
uni.setStorageSync("userInfoData", res.data);
this.userInfo.userId = res.data.id
uni.setStorageSync("userInfoData", this.userInfo);
}
},
async recursionApi() {


+ 2
- 2
src/utils/upload.js 查看文件

@@ -13,10 +13,10 @@ export default async function (params) {

return await uni.uploadFile({
url,
filePath: file.url,
file,
name: 'file',
header: {
"content-type": "multipart/form-data",
// "Content-Type": "multipart/form-data",
'X-Access-Token': token,
'Authorization': `Bearer ${token}`
},


+ 8
- 32
src/utils/util.js 查看文件

@@ -132,38 +132,14 @@ function handleChildren(tree) {
* @returns {string} 时间格式,可选。默认yyyy-mm-dd hh:MM:ss,年为"yyyy",月为"mm",日为"dd",时为"hh",分为"MM",秒为"ss",格式可以自由搭配,如: yyyy:mm:dd yyyy-mm-dd yyyy年mm月dd日,yyyy年mm月dd日 hh时MM分ss秒,yyyy/mm/dd/,MM:ss等组合
*/
function timeFormat(dateTime = null, fmt = 'yyyy-mm-dd hh:MM:ss') {
// 如果为null,则格式化当前时间
if (!dateTime) {
dateTime = Number(new Date());
}
// 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式
if (dateTime.toString().length == 10) {
dateTime *= 1000;
}
const date = new Date(dateTime);
let ret;
const opt = {
'y+': date.getFullYear().toString(),
// 年
'm+': (date.getMonth() + 1).toString(),
// 月
'd+': date.getDate().toString(),
// 日
'h+': date.getHours().toString(),
// 时
'M+': date.getMinutes().toString(),
// 分
's+': date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};

for (const k in opt) {
ret = new RegExp(`(${k})`).exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
}
}
return fmt;
const time = new Date(dateTime);
const Y = time.getFullYear();
const M = time.getMonth() + 1 < 10 ? "0" + (time.getMonth() + 1) : time.getMonth() + 1;
const D = time.getDate() < 10 ? "0" + time.getDate() : time.getDate();
const h = time.getHours() < 10 ? "0" + time.getHours() : time.getHours();
const m = time.getMinutes() < 10 ? "0" + time.getMinutes() : time.getMinutes();
const s = time.getSeconds() < 10 ? "0" + time.getSeconds() : time.getSeconds();
return Y + "-" + M + "-" + D + " " + h + ":" + m;
}

/**


Loading…
取消
儲存