From 9d6053d8c5f175a90ee569f1c8fdbd89be5729c3 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Sun, 04 Feb 2024 13:22:35 +0800
Subject: [PATCH] 更新
---
subPackage/label/formList.vue | 11
subPackage/label/index1.vue | 18
subPackage/label/checkList.vue | 101 ++++
api/reporting/reporting.js | 20
subPackage/workbench/views/checkReform.vue | 38 -
pages.json | 29 +
subPackage/workbench/views/labelReportDetail.vue | 19
subPackage/workbench/views/cscj.vue | 12
subPackage/label/index.vue | 20
subPackage/label/check.vue | 536 ++++++++++++++++++++++++
subPackage/workbench/views/selfCheckDetail.vue | 413 ++++++++++++++++++
subPackage/label/form.vue | 52 ++
12 files changed, 1,207 insertions(+), 62 deletions(-)
diff --git a/api/reporting/reporting.js b/api/reporting/reporting.js
index d23290c..d04f43d 100644
--- a/api/reporting/reporting.js
+++ b/api/reporting/reporting.js
@@ -187,4 +187,24 @@
method: 'POST',
data: data
})
+}
+
+//消防自查
+export const savePlaceCheck = (data) => {
+ return http.request({
+ url: '/blade-taskPlaceSelfCheck/taskPlaceSelfCheck/saveTwo',
+ method: 'POST',
+ data: data
+ })
+}
+
+//消防自查详情
+export const getPlaceCheckDetail = (params) => {
+ return http.request({
+ url: '/blade-taskPlaceSelfCheck/taskPlaceSelfCheck/getInfo',
+ method: 'get',
+ params: {
+ ...params
+ }
+ })
}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 42bb372..ef53090 100644
--- a/pages.json
+++ b/pages.json
@@ -293,7 +293,7 @@
{
"path": "form",
"style": {
- "navigationBarTitleText": "打金店报事",
+ "navigationBarTitleText": "二手交易",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
@@ -339,6 +339,24 @@
"path": "schoolList",
"style": {
"navigationBarTitleText": "报事列表",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
+ },
+ {
+ "path": "check",
+ "style": {
+ "navigationBarTitleText": "消防自查",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
+ },
+ {
+ "path": "checkList",
+ "style": {
+ "navigationBarTitleText": "消防自查",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
@@ -599,6 +617,15 @@
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
}
+ },
+ {
+ "path": "views/selfCheckDetail",
+ "style": {
+ "navigationBarTitleText": "消防自查",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
}
]
},
diff --git a/subPackage/label/check.vue b/subPackage/label/check.vue
new file mode 100644
index 0000000..28090ef
--- /dev/null
+++ b/subPackage/label/check.vue
@@ -0,0 +1,536 @@
+<template>
+ <view class="wrap">
+ <view class="section mb-20">
+ <u-collapse :value="itemIndex" ref="collapse">
+ <u-collapse-item :title="item.title" :name="index" v-for="(item,index) in questionList">
+ <u-form :model="info" ref="form">
+ <block v-for="(i,k) in item.children">
+ <view class="f-30 c-33">
+ {{i.title}}
+ </view>
+ <u-form-item labelWidth="90" label="隐患" prop="gateStatus">
+ <view class="btn-group flex">
+ <view class="value-item" :class="i.state == 0?'active bgc-main c-ff':''"
+ @click="changeStatus(0,i,index,k)">
+ 存在
+ </view>
+ <view class="value-item" :class="i.state == 1?'active bgc-main c-ff':''"
+ @click="changeStatus(1,i,index,k)">
+ 不存在
+ </view>
+ </view>
+ </u-form-item>
+ <view class="" v-if="i.state == 0">
+ <u-form-item labelWidth="100" label="隐患照片" prop="gateStatus">
+ <u-upload :fileList="i.urls" :previewFullImage="uploadConfig.previewFullImage"
+ :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+ :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+ @afterRead="afterReadImgs($event,i,index,k)"
+ @delete="deleteImages($event,index,k)">
+ <view class="upload-item upload-icon flex_base">
+ <u-icon name="/static/icon/upload.png" width="60rpx"
+ height="60rpx"></u-icon>
+ </view>
+ </u-upload>
+ </u-form-item>
+ <u-form-item labelWidth="100" label="隐患描述" prop="gateStatus">
+ <u-textarea v-model="i.remark" placeholder="请输入隐患描述"
+ placeholderClass="c-99 f-26"></u-textarea>
+ </u-form-item>
+ </view>
+ </block>
+ </u-form>
+ </u-collapse-item>
+ </u-collapse>
+ </view>
+
+ <view class="content bgc-ff">
+ <view class="upload ">
+ <view class="f-28 mb-20">其它隐患问题</view>
+ <u-textarea v-model="info.remark" placeholder="请输入内容" placeholderClass="c-99 f-26"></u-textarea>
+ <view class="mt-20">
+ <view class="f-28 mb-20">图片</view>
+ <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
+ :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+ :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg"
+ @delete="deletePic">
+ <view class="upload-item upload-icon flex_base">
+ <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+ </view>
+ </u-upload>
+ </view>
+ </view>
+
+ <view>
+ <view class="f-28 mb-20">签名</view>
+ <!-- <u-icon name="arrow-right"></u-icon> -->
+ <view class="upload-item upload-icon flex_base" @click="showSignature = true" v-if="!signatureUrl">
+ <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+ </view>
+ <view v-if="signatureUrl">
+ <u-image :src="signatureUrl" width="100" height="100" @click="previewImg()"></u-image>
+ </view>
+ </view>
+ </view>
+
+ <!-- <footer-btn @click="sumitInfo"></footer-btn> -->
+
+
+ <button class="submit-btn" @click="sumitInfo">提交</button>
+ <button class="list-btn mb-20" @click="navTo">我上报的事件</button>
+
+
+ <u-popup mode="bottom" :show="showSignature" round="10" :closeable="true" @close="showSignature=false">
+ <view class="signture-popup">
+ <jushi-signature :settings="signatureSettings" @change="signatureChange"></jushi-signature>
+ </view>
+ </u-popup>
+
+ <view class="blank"></view>
+ </view>
+</template>
+
+<script>
+ import uploadMixin from "@/mixin/uploadMixin";
+ import {
+ getPlaceCheckItem
+ } from "@/api/place/place.js"
+
+ import {
+ savePlaceCheck
+ } from "@/api/reporting/reporting.js"
+
+ export default {
+ mixins: [uploadMixin],
+ data() {
+ return {
+ form: {
+ images: []
+ },
+ info: {
+ remark: "",
+ imageUrls: "",
+ signaturePath: ""
+ },
+
+ desc: "",
+ title: "",
+ curSelectSite: {},
+ showSignature: false,
+ signatureUrl: "",
+ signatureSettings: { //签名设置
+ width: '700', //签名区域的宽
+ height: '800', //签名区域的高
+ lineWidth: 3, //签名时线宽
+ textColor: '#007AFF' //签名文字颜色
+ },
+ statusOption: [{
+ text: "存在",
+ value: 0
+ },
+ {
+ text: "不存在",
+ value: 1
+ },
+ ],
+ questionList: [],
+ itemIndex: [],
+ patrolRecordVOList: [],
+ count: 0,
+ statusList: [{
+ name: "是",
+ id: 2
+ },
+ {
+ name: "否",
+ id: 1
+ }
+ ],
+ time: Number(new Date()),
+ showSelectDate: false,
+ dangerCount: 0 //隐患项数量
+
+ }
+ },
+ onLoad(option) {
+ this.info.houseCode = uni.getStorageSync("siteInfo").houseCode;
+ this.info.placeName = uni.getStorageSync("siteInfo").name;
+ this.getItem();
+ },
+
+ methods: {
+ getItem() {
+ getPlaceCheckItem().then(res => {
+ let data = res.data;
+ this.questionList = res.data;
+ let arr = []
+ let obj = {
+ itemId: "",
+ state: "",
+ imagesUrl: "",
+ remark: ""
+ }
+ let count = 0;
+ for (let i = 0, ii = data.length; i < ii; i++) {
+ arr.push(i);
+ for (let k = 0, kk = data[i].children.length; k < kk; k++) {
+ // this.info.patrolRecordVOList.push(obj);
+ count += 1;
+ }
+ }
+ this.count = count;
+ this.itemIndex = arr;
+ })
+ },
+
+ changeStatus(value, item, fIndex, cIndex) {
+ let children = this.questionList[fIndex];
+ children.children[cIndex].state = value;
+ this.$set(this.questionList, fIndex, children)
+ if (value == 0 && !item.urls) {
+ children.children[cIndex].urls = [];
+ this.$set(this.questionList, fIndex, children)
+ }
+ this.$nextTick(() => {
+ this.$refs.collapse.init();
+ })
+ this.getSelected()
+ },
+
+ getSelected() {
+ let arr = [];
+ let count = 0;
+ for (let i = 0, ii = this.questionList.length; i < ii; i++) {
+ for (let k = 0, kk = this.questionList[i].children.length; k < kk; k++) {
+ if (this.questionList[i].children[k].state != null) {
+ arr.push({
+ itemId: this.questionList[i].children[k].id,
+ state: this.questionList[i].children[k].state,
+ imageUrls: this.setImages(this.questionList[i].children[k].urls),
+ remark: this.questionList[i].children[k].remark || ""
+ })
+ if (this.questionList[i].children[k].state == 0) {
+ count += 1;
+ }
+ }
+ }
+ }
+ this.dangerCount = count;
+ return arr;
+ },
+
+ setImages(key) {
+ if (!key) {
+ return ""
+ } else {
+ let urls = [];
+ for (let i of key) {
+ urls.push(i.name);
+ }
+ return urls.join(",")
+ }
+ },
+
+ async afterReadImgs(event, item, fIndex, cIndex) {
+ uni.showLoading({
+ title: "上传中..."
+ })
+ let children = this.questionList[fIndex];
+ let lists = [].concat(event.file)
+ let fileListLen = item.urls.length;
+ lists.map((item) => {
+ children.children[cIndex].urls.push({
+ ...item,
+ status: 'uploading',
+ message: '上传中'
+ })
+ this.$set(this.questionList, fIndex, children)
+ })
+ for (let i = 0; i < lists.length; i++) {
+ const result = await this.uploadFilePromise(lists[i].url)
+ children.children[cIndex].urls.splice(fileListLen, 1, Object.assign({}, {
+ url: result.data.link,
+ name: result.data.name
+ }))
+ this.$set(this.questionList, fIndex, children)
+ fileListLen++
+ }
+ this.loadingClose()
+ this.getSelected()
+ },
+
+ deleteImages(event, fIndex, cIndex) {
+ let children = this.questionList[fIndex];
+ children.children[cIndex].urls.splice(event.index, 1);
+ this.$set(this.questionList, fIndex, children);
+ this.getSelected()
+ },
+
+ signatureChange(e) {
+ // this.signatureUrl = e;
+ this.uploadSignImg(e)
+ },
+
+ showSignPopup() {
+ // if (this.getSelected().length < this.count) {
+ // this.$showTips("还有内容还未完善");
+ // return;
+ // }
+
+ let data = this.getSelected();
+ for (let i of data) {
+ if (i.state == 1) {
+ if (i.imageUrls || i.remark) {
+ i.imageUrls = "";
+ i.remark = "";
+ }
+ } else {
+ if (!i.imageUrls && !i.remark) {
+ this.$showTips("请上传隐患照片或填写隐患描述");
+ return;
+ }
+ }
+ }
+ this.showSignature = true;
+ },
+
+ uploadSignImg(url) {
+ uni.uploadFile({
+ url: this.uploadConfig.url,
+ filePath: url,
+ name: 'file',
+ header: this.uploadConfig.header,
+ success: (res) => {
+ console.log(res);
+ let data = JSON.parse(res.data);
+ if (res.statusCode == 200 && data.code == 200) {
+ // this.handleSubmit(data.data.name);
+ this.showSignature = false;
+ this.signatureUrl = data.data.link;
+ this.info.signaturePath = data.data.name;
+ // this.sumitInfo()
+ }
+ }
+ })
+ },
+
+ sumitInfo() {
+ uni.showLoading({
+ title: "加载中..."
+ })
+ if (this.form.images.length > 0) {
+ let urls = []
+ this.form.images.forEach(e => {
+ urls.push(e.name)
+ })
+ this.info.imageUrls = urls.join(",")
+ }
+
+ this.info.taskPlaceRecordVOList = this.getSelected()
+
+ savePlaceCheck(this.info).then(res => {
+ uni.hideLoading();
+ uni.showToast({
+ icon: 'success',
+ title: '提交成功',
+ success() {
+ setTimeout(() => {
+ uni.navigateBack();
+ }, 300)
+ }
+ })
+ })
+ },
+
+ previewImg() {
+ uni.previewImage({
+ urls: [this.signatureUrl],
+ current: this.signatureUrl
+ })
+ },
+
+ navTo() {
+ uni.navigateTo({
+ url: 'checkList'
+ })
+ },
+
+
+
+
+ }
+ }
+</script>
+
+<style lang="less">
+ page {
+ background-color: #f5f5f5;
+ }
+
+ .wrap {
+ .section {
+ padding: 0 20rpx;
+ margin: 20rpx 20rpx 0;
+ background-color: #fff;
+ }
+ }
+
+ .top {
+ display: flex;
+ justify-content: flex-end;
+ padding: 20rpx;
+ }
+
+ .top-btn {
+ padding: 16rpx 22rpx;
+ border-radius: 6rpx;
+ text-align: center;
+ }
+
+ .content {
+ margin: 20rpx;
+ padding: 20rpx 30rpx;
+ }
+
+ .cell {
+ margin: 0 20rpx;
+ padding: 20rpx 30rpx;
+ }
+
+ .site-box {
+ padding: 30rpx;
+ margin: 20rpx 30rpx;
+ border-radius: 4rpx;
+
+ .c-aa {
+ color: #aaa;
+ }
+
+ .address {
+ width: 60%;
+ margin-left: 25rpx;
+ }
+ }
+
+ .upload-item {
+ width: 140rpx;
+ height: 140rpx;
+ border: 1px solid #EEEEEE;
+ }
+
+ .upload {
+ // margin: 0 30rpx;
+ padding: 30rpx 0;
+ }
+
+ .submit-btn {
+ width: 690rpx;
+ height: 78rpx;
+ line-height: 78rpx;
+ background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
+ font-size: 32rpx;
+ color: #fff;
+ margin-top: 50rpx;
+ }
+
+ .list-btn {
+ width: 690rpx;
+ height: 78rpx;
+ line-height: 78rpx;
+ background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
+ font-size: 32rpx;
+ color: #fff;
+ margin-top: 50rpx;
+ }
+
+ .address-row {
+ flex: 1;
+ justify-content: flex-end;
+ align-items: center;
+ }
+
+ .address-content {
+ width: calc(100% - 116rpx - 20rpx);
+ margin-right: 20rpx;
+ text-align: right;
+ }
+
+ .location-btn {
+ width: 116rpx;
+ height: 46rpx;
+ line-height: 46rpx;
+ border-radius: 4rpx;
+ border: 1px solid currentColor;
+ padding: 0;
+ background-color: #fff;
+ text-align: center;
+ }
+
+
+ .signture-popup {
+ padding-bottom: 20rpx;
+ }
+
+ .sign {
+ padding: 30rpx;
+ // margin: 0 30rpx;
+ }
+
+ .value-item {
+ flex: 1;
+ // background-color: #ffffff;
+ // width: 120rpx;
+ border: 2rpx solid #f5f5f5;
+ height: 70rpx;
+ line-height: 70rpx;
+ box-sizing: border-box;
+ text-align: center;
+ }
+
+ .active {
+ border: 2rpx solid currentColor;
+ }
+
+ .btn-group {
+ flex: 1;
+ }
+
+ /deep/ .u-cell__title-text {
+ font-weight: bold;
+ font-size: 30rpx;
+ }
+
+ /deep/ .u-form-item__body__left__content {
+ font-size: 26rpx;
+ }
+
+ .blank {
+ width: 100%;
+ height: 140rpx;
+ }
+
+
+ .submit-btn {
+ width: 690rpx;
+ height: 78rpx;
+ line-height: 78rpx;
+ background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
+ font-size: 32rpx;
+ color: #fff;
+ margin-top: 50rpx;
+ }
+
+ .list-btn {
+ width: 690rpx;
+ height: 78rpx;
+ line-height: 78rpx;
+ background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
+ border-radius: 8rpx 8rpx 8rpx 8rpx;
+ font-size: 32rpx;
+ color: #fff;
+ margin-top: 50rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/label/checkList.vue b/subPackage/label/checkList.vue
new file mode 100644
index 0000000..c808060
--- /dev/null
+++ b/subPackage/label/checkList.vue
@@ -0,0 +1,101 @@
+<template>
+ <view class="">
+ <view class="list">
+ <view class="list-item bgc-ff mb-20" v-for="(i,k) in list" :key="k" @click="navTo(i.taskId)">
+ <view class="item-title flex a-i-c j-c-s-b mb-20">
+ <text class="f-32 fw">消防自查</text>
+ <!-- <text class="f-32 fw" v-if="i.eventType == 3">二手车交易</text>
+ <text class="f-32 fw" v-if="i.eventType == 2">二手手机维修</text> -->
+ <u-tag v-if="i.confirmFlag == 4" text="待接收" type="warning" plain plainFill></u-tag>
+ <u-tag v-if="i.confirmFlag == 1" text="待审批" type="warning" plain plainFill></u-tag>
+ <u-tag v-if="i.confirmFlag == 2" text="审核通过" type="success" plain plainFill></u-tag>
+ <u-tag v-if="i.confirmFlag == 3" text="审核拒绝" type="error" plain plainFill></u-tag>
+ </view>
+ <view class="item-row flex a-i-c j-c-s-b">
+ <text class="f-28">时间</text>
+ <text class="f-28 c-66">{{i.createTime}}</text>
+ </view>
+ </view>
+ </view>
+ <u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line />
+ </view>
+</template>
+
+<script>
+ import {
+ getLabelReportingList
+ } from "@/api/reporting/reporting.js"
+ export default {
+ data() {
+ return {
+ list: [],
+ currentPage: 1,
+ loadingStatus: 'nomore',
+ }
+ },
+
+ onLoad(option) {
+ this.getList(option.type)
+ },
+ onReachBottom() {
+ this.currentPage++
+ this.getList()
+ },
+
+ methods: {
+ getList() {
+ getLabelReportingList({
+ userId: uni.getStorageSync("userInfo").user_id,
+ page: this.currentPage,
+ size: 10,
+ reportType: 2
+ // eventType: type
+ }).then(res => {
+ if (res.code != 200) {
+ uni.showToast({
+ title: '数据请求失败',
+ icon: 'error'
+ })
+ return
+ }
+ let records = res.data.records;
+ this.list = [...this.list, ...records]
+ this.loadingStatus = 'nomore'
+ })
+ },
+ navTo(id) {
+ uni.navigateTo({
+ url: `/subPackage/workbench/views/selfCheckDetail?id=${id}`
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #F5F5F5;
+ }
+
+ .list {
+ margin: 20rpx 30rpx 0;
+ }
+
+ .list-item {
+ padding: 0 30rpx 20rpx;
+ border-radius: 8rpx;
+
+ .item-title {
+ padding: 30rpx 0;
+ border-bottom: 1px solid #F5F5F5;
+ }
+
+ .item-row {
+ padding: 10rpx 0;
+
+ .address {
+ width: 65%;
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/label/form.vue b/subPackage/label/form.vue
index 5ba6313..dd9a29e 100644
--- a/subPackage/label/form.vue
+++ b/subPackage/label/form.vue
@@ -8,8 +8,20 @@
<u-input v-model="info.districtName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
inputAlign="right"></u-input>
</u-form-item>
- <u-form-item label="对象电话" prop="transactionObjectTel" borderBottom required>
- <u-input v-model="info.transactionObjectTel" type="number" border="none" placeholder="请输入"
+ <u-form-item label="物品名称" prop="transactionObject" borderBottom required>
+ <u-input v-model="info.transactionObject" border="none" placeholder="请输入"
+ placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+ </u-form-item>
+ <u-form-item label="请输入交易人姓名" prop="owner" borderBottom required>
+ <u-input v-model="info.owner" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+ inputAlign="right"></u-input>
+ </u-form-item>
+ <u-form-item label="请输入交易人电话" prop="phoneNumber" borderBottom required>
+ <u-input v-model="info.phoneNumber" type="number" border="none" placeholder="请输入"
+ placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+ </u-form-item>
+ <u-form-item label="身份证号" prop="idCard" borderBottom required>
+ <u-input v-model="info.idCard" type="idcard" border="none" placeholder="请输入"
placeholderClass="f-28 c-99" inputAlign="right"></u-input>
</u-form-item>
<u-form-item label="交易金额" prop="transactionMoney" borderBottom required>
@@ -89,6 +101,10 @@
data() {
return {
info: {
+ transactionObject: "",
+ owner: "",
+ phoneNumber: "",
+ idCard: "",
transactionObjectTel: "",
transactionMoney: "",
goodsNums: "",
@@ -105,10 +121,20 @@
message: '请输入场所名称',
trigger: ['blur', 'change']
},
- 'info.transactionObjectTel': [{
+ 'info.transactionObject': {
+ required: true,
+ message: '请输入物品名称',
+ trigger: ['blur', 'change']
+ },
+ 'info.owner': {
+ required: true,
+ message: '请输入交易人姓名',
+ trigger: ['blur', 'change']
+ },
+ 'info.phoneNumber': [{
type: 'number',
required: true,
- message: '请输入对象电话',
+ message: '请输入交易人手机号',
trigger: ['blur', 'change']
},
{
@@ -119,6 +145,24 @@
trigger: ['change', 'blur']
}
],
+ 'info.idCard': [{
+ type: 'string',
+ required: false,
+ message: '请输入身份证号码',
+ trigger: ['change', 'blur']
+ },
+ {
+ validator: (rule, value, callback) => {
+ const idCardRegex =
+ /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
+ return idCardRegex.test(value)
+ },
+
+ message: '身份证号码有误',
+ trigger: ['change', 'blur']
+ }
+ ],
+
'info.transactionMoney': {
required: true,
message: '请输入交易金额',
diff --git a/subPackage/label/formList.vue b/subPackage/label/formList.vue
index b7ab2d1..3bbe0be 100644
--- a/subPackage/label/formList.vue
+++ b/subPackage/label/formList.vue
@@ -3,9 +3,9 @@
<view class="list">
<view class="list-item bgc-ff mb-20" v-for="(i,k) in list" :key="k" @click="navTo(i.taskId)">
<view class="item-title flex a-i-c j-c-s-b mb-20">
- <text class="f-32 fw" v-if="i.eventType == 1">打金店</text>
- <text class="f-32 fw" v-if="i.eventType == 3">二手车交易</text>
- <text class="f-32 fw" v-if="i.eventType == 2">二手手机维修</text>
+ <text class="f-32 fw">{{i.transactionObject}}</text>
+ <!-- <text class="f-32 fw" v-if="i.eventType == 3">二手车交易</text>
+ <text class="f-32 fw" v-if="i.eventType == 2">二手手机维修</text> -->
<u-tag v-if="i.confirmFlag == 4" text="待接收" type="warning" plain plainFill></u-tag>
<u-tag v-if="i.confirmFlag == 1" text="待审批" type="warning" plain plainFill></u-tag>
<u-tag v-if="i.confirmFlag == 2" text="审核通过" type="success" plain plainFill></u-tag>
@@ -43,12 +43,13 @@
},
methods: {
- getList(type) {
+ getList() {
getLabelReportingList({
userId: uni.getStorageSync("userInfo").user_id,
page: this.currentPage,
size: 10,
- eventType: type
+ reportType: 3
+ // eventType: type
}).then(res => {
if (res.code != 200) {
uni.showToast({
diff --git a/subPackage/label/index.vue b/subPackage/label/index.vue
index 7622a04..bddce49 100644
--- a/subPackage/label/index.vue
+++ b/subPackage/label/index.vue
@@ -39,7 +39,7 @@
<text class="address f-28">{{curSiteInfo.name}}</text>
</view>
- <view class="nav flex flex-wrap j-c-s-b" v-if="isNine == 2">
+ <!-- <view class="nav flex flex-wrap j-c-s-b" v-if="isNine == 2">
<view class="nav-item" v-for="(i,k) in labelList" :key="k" @click="navTo(i.path,k)">
<image class="nav-item-bg" :src="i.bgImg" mode="aspectFill"></image>
<view class="nav-item-inner flex f-d-c">
@@ -47,17 +47,27 @@
<button class="item-btn" :style="{backgroundColor:i.background}">立即上报</button>
</view>
</view>
- </view>
+ </view> -->
- <view class="nav flex flex-wrap j-c-s-b" v-if="isNine == 1">
- <view class="nav-item" :key="k" @click="navTo('hotel')">
+ <view class="nav flex flex-wrap j-c-s-b">
+ <view class="nav-item" :key="k" @click="navTo('check')">
<image class="nav-item-bg" src="/static/icon/nav-bg-12.png" mode="aspectFill"></image>
<view class="nav-item-inner flex f-d-c">
- <text class="f-32 mb-30">{{isNineHotel?"旅馆安全":"消防检查"}}</text>
+ <text class="f-32 mb-30">消防检查</text>
<button class="item-btn" :style="{backgroundColor:'#EC7E51'}">立即上报</button>
</view>
</view>
+
+ <view class="nav-item" :key="k" @click="navTo('form')">
+ <image class="nav-item-bg" src="/static/icon/nav-bg-11.png" mode="aspectFill"></image>
+ <view class="nav-item-inner flex f-d-c">
+ <text class="f-32 mb-30">二手交易</text>
+ <button class="item-btn" :style="{backgroundColor:'#4D98E2'}">立即上报</button>
+ </view>
+ </view>
+
</view>
+
</view>
</view>
diff --git a/subPackage/label/index2.vue b/subPackage/label/index1.vue
similarity index 91%
rename from subPackage/label/index2.vue
rename to subPackage/label/index1.vue
index 3c96d06..7622a04 100644
--- a/subPackage/label/index2.vue
+++ b/subPackage/label/index1.vue
@@ -39,7 +39,7 @@
<text class="address f-28">{{curSiteInfo.name}}</text>
</view>
- <!-- <view class="nav flex flex-wrap j-c-s-b" v-if="isNine == 2">
+ <view class="nav flex flex-wrap j-c-s-b" v-if="isNine == 2">
<view class="nav-item" v-for="(i,k) in labelList" :key="k" @click="navTo(i.path,k)">
<image class="nav-item-bg" :src="i.bgImg" mode="aspectFill"></image>
<view class="nav-item-inner flex f-d-c">
@@ -47,27 +47,17 @@
<button class="item-btn" :style="{backgroundColor:i.background}">立即上报</button>
</view>
</view>
- </view> -->
+ </view>
- <view class="nav flex flex-wrap j-c-s-b">
+ <view class="nav flex flex-wrap j-c-s-b" v-if="isNine == 1">
<view class="nav-item" :key="k" @click="navTo('hotel')">
<image class="nav-item-bg" src="/static/icon/nav-bg-12.png" mode="aspectFill"></image>
<view class="nav-item-inner flex f-d-c">
- <text class="f-32 mb-30">消防检查</text>
+ <text class="f-32 mb-30">{{isNineHotel?"旅馆安全":"消防检查"}}</text>
<button class="item-btn" :style="{backgroundColor:'#EC7E51'}">立即上报</button>
</view>
</view>
-
- <view class="nav-item" :key="k" @click="navTo('form')">
- <image class="nav-item-bg" src="/static/icon/nav-bg-11.png" mode="aspectFill"></image>
- <view class="nav-item-inner flex f-d-c">
- <text class="f-32 mb-30">二手交易</text>
- <button class="item-btn" :style="{backgroundColor:'#4D98E2'}">立即上报</button>
- </view>
- </view>
-
</view>
-
</view>
</view>
diff --git a/subPackage/workbench/views/checkReform.vue b/subPackage/workbench/views/checkReform.vue
index 69a85a6..177cfd6 100644
--- a/subPackage/workbench/views/checkReform.vue
+++ b/subPackage/workbench/views/checkReform.vue
@@ -90,8 +90,9 @@
<text class="item-left">{{i.title}}</text>
<text>不存在</text>
</view> -->
- <u-collapse v-if="i.id == n.itemId && n.state == 0" ref="collapse">
- <u-collapse-item :name="n.itemId" :title="i.title" value="存在">
+ <u-collapse :value="ids" v-if="i.id == n.itemId && n.state == 0" ref="collapse">
+ <u-collapse-item :name="n.itemId" :title="i.title" value="存在" :disabled="true"
+ :clickable="false" :isLink="false">
<view class="mb-20" v-if="n.imageUrls">
<view class="f-26 mb-10 c-00">隐患照片</view>
<view class="flex flex-wrap">
@@ -137,7 +138,6 @@
placeholderClass="c-99 f-26"
:disabled="roleType == 2 && (info.status == 4 || info.status == 3)?false:true"></u-textarea>
</view>
- <!-- <view class="" style="height:140rpx;"></view> -->
</u-collapse-item>
</u-collapse>
</block>
@@ -190,28 +190,8 @@
await this.getItem();
this.getDetail(option.id);
},
- // onReady() {
- // setTimou(() => {
- // if (this.$refs.collapse) {
- // this.$nextTick(() => {
- // this.$refs.collapse.init();
- // })
- // }
- // }, 300)
-
- // },
methods: {
-
-
- handleOpenChange(item, index) {
- //根据文档使用$nextTick,获取高度无效,试用setTimeout
- setTimeout(() => {
- this.$refs.collapse[index].queryRect();
- }, 100);
- },
-
-
getDetail(id) {
@@ -241,14 +221,6 @@
}
this.ids = ids;
this.info = data;
- // if (this.$refs.collapse) {
- // this.$nextTick(() => {
- // this.$refs.collapse.init()
- // })
- // }
-
-
-
})
},
@@ -427,4 +399,8 @@
.c-00 {
color: #000;
}
+
+ /deep/ .u-collapse-item .u-collapse-item__content {
+ height: auto !important;
+ }
</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index c17f9f3..871df8a 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -886,6 +886,18 @@
this.form.frontType = "";
}
+ if (this.form.isNine == 1 && !this.form.nineType) {
+ this.$showTips("请选择九小场所类型")
+ return
+ }
+
+ if (this.form.isFront == 1 && !this.form.frontType) {
+ this.$showTips("请选择阵地类型")
+ return
+ }
+
+
+
delete this.form.images;
add(this.form).then(res => {
diff --git a/subPackage/workbench/views/labelReportDetail.vue b/subPackage/workbench/views/labelReportDetail.vue
index 1e7681c..7a9ede3 100644
--- a/subPackage/workbench/views/labelReportDetail.vue
+++ b/subPackage/workbench/views/labelReportDetail.vue
@@ -78,8 +78,23 @@
data() {
return {
basicData: [{
- label: '对象电话',
- name: "transactionObjectTel",
+ label: '物品名称',
+ name: "transactionObject",
+ value: '未完善'
+ },
+ {
+ label: '交易人姓名',
+ name: "owner",
+ value: '未完善'
+ },
+ {
+ label: '交易人电话',
+ name: "phoneNumber",
+ value: '未完善'
+ },
+ {
+ label: '交易人电话',
+ name: "idCard",
value: '未完善'
},
{
diff --git a/subPackage/workbench/views/selfCheckDetail.vue b/subPackage/workbench/views/selfCheckDetail.vue
new file mode 100644
index 0000000..7cc0b7f
--- /dev/null
+++ b/subPackage/workbench/views/selfCheckDetail.vue
@@ -0,0 +1,413 @@
+<template>
+ <view class="">
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>场所名称</text>
+ <text class="item-content">{{info.placeName}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>标签</text>
+ <text>{{label || "未完善"}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>场所负责人</text>
+ <text>{{info.principal || "未完善"}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>场所负责人电话</text>
+ <text>{{info.principalPhone || "未完善"}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>检查人</text>
+ <text>{{info.name}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>检查时间</text>
+ <text>{{info.createTime}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>地址</text>
+ <text class="item-content">{{info.location}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c" v-if="info.rectificationNoticeFlag == 2">
+ <text>下发整改通知</text>
+ <text class="item-content">是</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c" v-if="info.punishFlag == 2">
+ <text>是否处罚</text>
+ <text class="item-content">是</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c" v-if="info.punishRemark">
+ <text>处罚说明</text>
+ <text class="item-content">{{info.punishRemark}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c" v-if="info.rectificationEndTime">
+ <text>整改截至时间</text>
+ <text class="item-content">{{info.rectificationEndTime}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c" v-if="info.remark">
+ <text>其它隐患问题</text>
+ <text class="item-content">{{info.remark}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>状态</text>
+ <text v-if="info.status == 1">待审核</text>
+ <text v-if="info.status == 2">审核成功</text>
+ <text v-if="info.status == 3">审核驳回</text>
+ <text v-if="info.status == 4">待完成</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c" v-if="info.status == 3 && info.reasonFailure">
+ <text>驳回原因</text>
+ <text class="item-content">{{info.reasonFailure}}</text>
+ </view>
+
+ <view class="image-wrap bgc-ff" v-if="images.length">
+ <view class="mb-20">
+ 图片
+ </view>
+ <view class="flex flex-wrap">
+ <view class="image-item" v-for="(i,k) in images" @click="previewImage(images,i)">
+ <u-image :src="i" width="100rpx" height="100rpx"></u-image>
+ </view>
+ </view>
+ </view>
+
+ <view class="image-wrap bgc-ff" v-if="signatureUrl.length">
+ <view class="mb-20">
+ 签名
+ </view>
+ <view class="image-item" v-for="(i,k) in signatureUrl" @click="previewImage(signatureUrl,i)">
+ <u-image :src="i" width="100rpx" height="100rpx"></u-image>
+ </view>
+ </view>
+
+
+
+ <view class="mt-20 bgc-ff">
+ <block v-for="(item,index) in itemList">
+ <block v-for="(i,k) in item.children">
+ <block v-for="(n,m) in info.patrolRecordVOList">
+ <!-- <view class="item-row flex j-c-s-b a-i-c" v-if="i.id == n.itemId && n.state == 1">
+ <text class="item-left">{{i.title}}</text>
+ <text>不存在</text>
+ </view> -->
+ <u-collapse :value="ids" v-if="i.id == n.itemId && n.state == 0" ref="collapse">
+ <u-collapse-item :name="n.itemId" :title="i.title" value="存在" :disabled="true"
+ :clickable="false" :isLink="false">
+ <view class="mb-20" v-if="n.imageUrls">
+ <view class="f-26 mb-10 c-00">隐患照片</view>
+ <view class="flex flex-wrap">
+ <view class="mr-20" v-for="r in ($setImageUrl(n.imageUrls))">
+ <u-image :src="r" width="140rpx" height="140rpx"
+ @click="previewImage($setImageUrl(n.imageUrls),i)"></u-image>
+ </view>
+ </view>
+ </view>
+
+ <view class="mb-20" v-if="n.remark">
+ <view class="f-26 mb-10 c-00">隐患描述</view>
+ <view class="f-28 c-00">
+ {{n.remark}}
+ </view>
+ </view>
+
+ <!-- <view class="mb-20" v-if="roleType == 2 || (roleType == 1 && n.rectificationImageUrls)">
+ <view class="f-26 mb-10 c-00">整改后照片</view>
+ <u-upload v-if="roleType == 2 && (info.status == 4 || info.status == 3)"
+ :fileList="n.urls" :previewFullImage="uploadConfig.previewFullImage"
+ :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+ :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+ @afterRead="afterReadImgs($event,n,m)" @delete="deleteImages($event,m)">
+ <view class="upload-item upload-icon flex_base">
+ <u-icon name="/static/icon/upload.png" width="60rpx"
+ height="60rpx"></u-icon>
+ </view>
+ </u-upload>
+
+
+ <view class="flex flex-wrap" v-if="info.status != 4 && n.rectificationImageUrls ">
+ <view class="mr-20" v-for="r in ($setImageUrl(n.rectificationImageUrls))">
+ <u-image :src="r" width="140rpx" height="140rpx"
+ @click="previewImage($setImageUrl(n.rectificationImageUrls),i)"></u-image>
+ </view>
+ </view>
+ </view> -->
+
+ <!-- <view class="" v-if="roleType == 2 || (roleType == 1 && n.rectificationRemark)">
+ <view class="f-26 mb-10 c-00">整改后描述</view>
+ <u-textarea v-model="n.rectificationRemark" placeholder="请输入整改后描述"
+ placeholderClass="c-99 f-26"
+ :disabled="roleType == 2 && (info.status == 4 || info.status == 3)?false:true"></u-textarea>
+ </view> -->
+
+
+
+ </u-collapse-item>
+ </u-collapse>
+ </block>
+ </block>
+ </block>
+ </view>
+
+ <view class="blank"></view>
+ <!-- <footer-btn @click="submitInfo" v-if="roleType == 2 && (info.status == 4 || info.status == 3)" /> -->
+ <audit-action v-if="roleType == 1 && info.status == 1" @handle="submitAudit" />
+ </view>
+</template>
+
+<script>
+ import uploadMixin from "@/mixin/uploadMixin";
+ import {
+ getPlaceCheckItem,
+ getPlaceCheckReformDetail,
+ addPlaceCheckReform,
+ auditPlaceCheckReform
+ } from '@/api/place/place.js'
+
+ import {
+ getPlaceCheckDetail
+ } from '@/api/reporting/reporting.js'
+
+ import auditAction from '../components/actionBtn.vue'
+ export default {
+ mixins: [uploadMixin],
+ components: {
+ auditAction
+ },
+ data() {
+ return {
+ info: {},
+ images: [],
+ signatureUrl: [],
+ label: "",
+ itemList: [],
+ roleType: '', //1.民警/系统管理员 2.场所负责人
+ ids: []
+ }
+ },
+ async onLoad(option) {
+ let {
+ roleName
+ } = uni.getStorageSync("activeRole")
+ if (roleName == "居民") {
+ this.roleType = 2;
+ }
+ if (roleName == "民警" || roleName == "系统管理员") {
+ this.roleType = 1;
+ }
+
+ await this.getItem();
+ this.getDetail(option.id);
+ },
+
+ methods: {
+
+ getDetail(id) {
+ getPlaceCheckDetail({
+ task: id
+ }).then(res => {
+ let data = res.data;
+ // this.info = res.data;
+ this.images = this.$setImageUrl(res.data.imageUrls);
+ this.signatureUrl = this.$setImageUrl(res.data.signaturePath);
+ if (res.data.placePoiLabelVOList.length) {
+ this.label = res.data.placePoiLabelVOList[res.data.placePoiLabelVOList.length - 1]
+ .labelName;
+ }
+ let ids = [];
+ for (let i of data.patrolRecordVOList) {
+ if ((data.status == 4 || data.status == 3) && this.roleType == 2) {
+ if (i.rectificationImageUrls) {
+ i.urls = this.$setImageUrl(i.rectificationImageUrls, 2);
+ } else {
+ i.urls = [];
+ }
+ }
+ if (i.state == 0) {
+ ids.push(i.itemId)
+ }
+ }
+ this.ids = ids;
+ this.info = data;
+ })
+ },
+
+ getItem() {
+ getPlaceCheckItem().then(res => {
+ if (res.code == 200) {
+ this.itemList = res.data;
+ }
+ })
+ },
+
+ async afterReadImgs(event, item, fIndex) {
+ uni.showLoading({
+ title: "上传中..."
+ })
+ let children = this.info.patrolRecordVOList;
+ let lists = [].concat(event.file)
+ let fileListLen = item.urls.length;
+ lists.map((item) => {
+ children[fIndex].urls.push({
+ ...item,
+ status: 'uploading',
+ message: '上传中'
+ })
+ this.$set(this.info, "patrolRecordVOList", children)
+ })
+ for (let i = 0; i < lists.length; i++) {
+ const result = await this.uploadFilePromise(lists[i].url)
+ children[fIndex].urls.splice(fileListLen, 1, Object.assign({}, {
+ url: result.data.link,
+ name: result.data.name
+ }))
+ this.$set(this.info, "patrolRecordVOList", children)
+ fileListLen++
+ }
+ this.loadingClose()
+ },
+
+ deleteImages(event, index) {
+ let children = this.info.patrolRecordVOList;
+ children[index].urls.splice(event.index, 1);
+ this.$set(this.info, "patrolRecordVOList", children)
+ },
+
+ setImages(key) {
+ if (!key) {
+ return ""
+ } else {
+ let urls = [];
+ for (let i of key) {
+ urls.push(i.name);
+ }
+ return urls.join(",")
+ }
+ },
+
+ previewImage(urls, current) {
+ uni.previewImage({
+ urls,
+ current
+ })
+ },
+
+ //整改提交
+ submitInfo() {
+ uni.showLoading({
+ title: "加载中..."
+ })
+ let data = this.info;
+ for (let i of data.patrolRecordVOList) {
+ if (i.urls) {
+ i.rectificationImageUrls = this.setImages(i.urls)
+ }
+ delete i.urls;
+ }
+ if (data.status == 3) {
+ data.status = 1;
+ }
+ if (data.status == 4) {
+ data.status = 1;
+ }
+ addPlaceCheckReform(data).then(res => {
+ uni.hideLoading()
+ if (res.code == 200) {
+ this.$showTips("操作成功", "success");
+ setTimeout(() => {
+ uni.navigateBack()
+ }, 300)
+ }
+ })
+ },
+
+ //审核
+ submitAudit(val) {
+ uni.showLoading({
+ title: "加载中..."
+ })
+ auditPlaceCheckReform({
+ id: this.info.id,
+ taskId: this.info.taskId,
+ status: val.type,
+ rectificationFlag: val.type == 3 ? 1 : 2,
+ reasonFailure: val.remark
+ }).then(res => {
+ uni.hideLoading()
+ if (res.code == 200) {
+ this.$showTips("操作成功", "success");
+ setTimeout(() => {
+ uni.navigateBack()
+ }, 300)
+ }
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #f5f5f5;
+ }
+
+ .item-row {
+ width: 100%;
+ padding: 30rpx;
+ box-sizing: border-box;
+ border-bottom: 1px solid #f5f5f5;
+ font-size: 28rpx;
+ background-color: #fff;
+
+ .item-content {
+ width: 70%;
+ text-align: right;
+ }
+
+ .item-left {
+ width: 70%;
+ }
+ }
+
+ .image-wrap {
+ margin-top: 20rpx;
+ padding: 20rpx;
+
+ .image-item {
+ margin-right: 20rpx;
+ }
+ }
+
+ /deep/.u-cell__title-text {
+ color: #000 !important;
+ width: 70%;
+ font-size: 28rpx !important;
+ }
+
+ /deep/ .u-cell__value {
+ color: #000 !important;
+ font-size: 28rpx !important;
+ }
+
+ .mr-20 {
+ margin-right: 20rpx;
+ }
+
+ .upload-item {
+ width: 140rpx;
+ height: 140rpx;
+ border: 1px solid #EEEEEE;
+ }
+
+ .blank {
+ width: 100%;
+ height: 140rpx;
+ }
+
+ .c-00 {
+ color: #000;
+ }
+
+ /deep/ .u-collapse-item .u-collapse-item__content {
+ height: auto !important;
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3