main
张涛 8 months ago
parent 0f6e9cbe4b
commit f084772a46

@ -94,14 +94,13 @@
"navigationBarTitleText": "浏览文本" "navigationBarTitleText": "浏览文本"
} }
}, },
{ {
"path" : "pages/myLogin", "path": "pages/myLogin",
"style" : "style": {
{ "navigationBarTitleText": "",
"navigationBarTitleText" : "", "enablePullDownRefresh": false
"enablePullDownRefresh" : false }
} }
}
], ],
"subPackages": [ "subPackages": [
{ {
@ -237,130 +236,19 @@
] ]
}, },
{ {
"root": "subViolation", "root": "subPublic",
"pages": [ "pages": [
{ {
"path": "ViolationList/ViolationList", "path": "Store/Store",
"style": {
"navigationBarTitleText": "违停记录",
"enablePullDownRefresh": false
}
},
{
"path": "ViolationList/info",
"style": {
"navigationBarTitleText": "违章详情",
"enablePullDownRefresh": false
}
},
{
"path": "ViolationList/complaint",
"style": {
"navigationBarTitleText": "违章申诉",
"enablePullDownRefresh": false
}
},
{
"path": "TuogangList/TuogangList",
"style": {
"navigationBarTitleText": "脱岗记录",
"enablePullDownRefresh": false
}
},
{
"path": "TuogangList/info",
"style": {
"navigationBarTitleText": "脱岗详情",
"enablePullDownRefresh": false
}
},
{
"path": "TuogangList/complaint",
"style": {
"navigationBarTitleText": "脱岗申诉",
"enablePullDownRefresh": false
}
},
{
"path": "AddressBook/AddressBook",
"style": {
"navigationBarTitleText": "通讯录",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "ShengchanJiandu/ShengchanJiandu",
"style": {
"navigationBarTitleText": "安全生产监督",
"enablePullDownRefresh": false
}
},
{
"path": "ShengchanJiandu/CodesInfo",
"style": {
"navigationBarTitleText": "店铺检查记录",
"enablePullDownRefresh": false
}
},
{
"path": "ShengchanJiandu/FieldTest/FieldTest",
"style": {
"navigationBarTitleText": "现场检查记录",
"enablePullDownRefresh": false
}
},
{
"path": "ShengchanJiandu/FieldTest/add",
"style": {
"navigationBarTitleText": "现场检查录入",
"enablePullDownRefresh": false
}
},
{
"path": "ShengchanJiandu/WorkOrder/WorkOrder",
"style": {
"navigationBarTitleText": "整改工单",
"enablePullDownRefresh": false
}
},
{
"path": "ShengchanJiandu/WorkOrder/info",
"style": {
"navigationBarTitleText": "整改复查",
"enablePullDownRefresh": false
}
},
{
"path": "ShengchanJiandu/WorkOrder/postpone",
"style": {
"navigationBarTitleText": "申请延期",
"enablePullDownRefresh": false
}
},
{
"path": "ShengchanJiandu/MsgIssue/MsgIssue",
"style": { "style": {
"navigationBarTitleText": "信息发布", "navigationBarTitleText": "店铺详细信息",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, },
{ {
"path": "ShengchanJiandu/MsgIssue/add", "path": "waterEducation/index",
"style": { "style": {
"navigationBarTitleText": "新增信息", "navigationBarTitleText": "水生态治理科教",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "subPublic",
"pages": [
{
"path": "Store/Store",
"style": {
"navigationBarTitleText": "店铺详细信息",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
} }

@ -1,367 +1,332 @@
<!-- <!--
* @Author: 张涛 * @Author: 张涛
* @Date: 2023-11-06 14:04:41 * @Date: 2023-11-06 14:04:41
* @LastEditors: JC9527 * @LastEditors: laozt 2721205210@qq.com
* @LastEditTime: 2024-01-12 19:29:54 * @LastEditTime: 2024-01-17 17:20:24
* @FilePath: \JiangNingUmale-App\pages\index.vue * @FilePath: \JiangNingUmale-App\pages\index.vue
--> -->
<template> <template>
<view class="page"> <view class="page">
<u-navbar title="首页" :placeholder="true" :isBack="false" :is-fixed='false' /> <u-navbar
<view class="welcome"> title="首页"
<text class="title">欢迎登录城市精细化治理系统</text> :placeholder="true"
<text class="name">{{ userInfo ? userInfo.account : '' }}</text> :isBack="false"
<view class="date-weather"> :is-fixed="false"
<text class="date"> {{ time ? time : "" }} </text> />
<text class="weather"> 天气晴 </text> <view class="welcome">
</view> <text class="title">欢迎登录城市精细化治理系统</text>
</view> <text class="name">{{ userInfo ? userInfo.account : "" }}</text>
<view class="main-content"> <view class="date-weather">
<view class="work-center"> <text class="date"> {{ time ? time : "" }} </text>
<view v-for="(item, index) in grids" :key="index" @click="goPath(item)" style="position: relative"> <text class="weather"> 天气晴 </text>
<image :src="item.gridImg" mode="" class="grid-img"></image> </view>
<text class="grid-name" :style="{ color: item.color }">{{ item.name }} </view>
</text> <view class="main-content">
</view> <view class="work-center">
</view> <view
</view> v-for="(item, index) in grids"
</view> :key="index"
@click="goPath(item)"
style="position: relative"
>
<image :src="item.gridImg" mode="" class="grid-img"></image>
<text class="grid-name" :style="{ color: item.color }"
>{{ item.name }}
</text>
</view>
</view>
</view>
</view>
</template> </template>
<script> <script>
// import booleanPointInPolygon from '@turf/boolean-point-in-polygon'; // import booleanPointInPolygon from '@turf/boolean-point-in-polygon';
// import { point, feature } from '@turf/helpers'; // import { point, feature } from '@turf/helpers';
// import circle from '@turf/circle'; // import circle from '@turf/circle';
import { getUserIdByPoint } from "@/api/jn/login.js" import { getUserIdByPoint } from "@/api/jn/login.js";
import { clock, getStatus, judgmentPosition } from "@/api/jn/clock.js" import { clock, getStatus, judgmentPosition } from "@/api/jn/clock.js";
import { listNews } from "@/api/jn/news"; import { listNews } from "@/api/jn/news";
// import chujie from "@/plugins/mapJson/chujie.json" // import chujie from "@/plugins/mapJson/chujie.json"
export default { export default {
data() { data() {
return { return {
grids: [ grids: [
// { {
// name: "", name: "水生态治理科教(公众)",
// gridImg: "/static/images/umale/gr1.png", gridImg: "/static/images/umale/gr8.png",
// color: "#0D306B", color: "#0D306B",
// subcolor: "#BE9085", subcolor: "",
// disable: false, disable: false,
// toPage: "/subcontract/work/videocenter/index", toPage: "/subPublic/waterEducation/index",
// }, },
{ {
name: "事件管理", name: "活动管理(商家)",
gridImg: "/static/images/umale/gr2.png", gridImg: "/static/images/umale/gr8.png",
color: "#0D516B", color: "#0D306B",
subcolor: "", subcolor: "",
disable: false, disable: false,
toPage: "/subcontract/work/event/index", toPage: "/subEnterprise/activity/activity",
}, },
{ {
name: "考勤打卡", name: "消息中心(商家)",
gridImg: "/static/images/umale/gr3.png", gridImg: "/static/images/umale/gr8.png",
color: "#6B480D", color: "#0D306B",
subcolor: "", subcolor: "",
disable: false, disable: false,
toPage: "/subcontract/work/attence/index", toPage: "pages/msg/index2",
}, },
{ {
name: "任务管理", name: "门前三包服务(商家)",
gridImg: "/static/images/umale/gr4.png", gridImg: "/static/images/umale/gr8.png",
color: "#154F06", color: "#0D306B",
subcolor: "#C5A071", subcolor: "",
disable: false, disable: false,
toPage: "/subcontract/work/taskmanage/index", toPage: "/subEnterprise/threeGuarantees/index",
}, },
{ {
name: "违停记录", name: "店铺店招预审(商家)",
gridImg: "/static/images/umale/gr5.png", gridImg: "/static/images/umale/gr8.png",
color: "#0D516B", color: "#0D306B",
subcolor: "#6E89B1", subcolor: "",
disable: false, disable: false,
toPage: "/subViolation/ViolationList/ViolationList", toPage: "/subEnterprise/WorkOrder/WorkOrder",
}, },
{ ],
name: "脱岗记录", userInfo: null,
gridImg: "/static/images/umale/gr6.png", time: null,
color: "#6B0D0D", lat: null,
subcolor: "", lng: null,
disable: false, circleLat: null,
toPage: "/subViolation/TuogangList/TuogangList", circleLng: null,
}, circleClock: null,
// { times: null,
// name: "", queryParams: {
// gridImg: "/static/images/umale/gr7.png", pageNum: 1,
// color: "#025629", pageSize: 10,
// subcolor: "", title: "",
// disable: false, status: 0,
// toPage: "/subViolation/AddressBook/AddressBook", },
// }, };
// { },
// name: "", // ...
// gridImg: "/static/images/umale/gr8.png", onBackPress(options) {
// color: "#0D306B", console.log("返回", options);
// subcolor: "", if (options.from == "backbutton" || options.from == "navigateBack") {
// disable: false, //
// toPage: "/subViolation/ShengchanJiandu/ShengchanJiandu", uni.showModal({
// }, title: "退出应用",
// { content: "您确定要退出应用吗?",
// name: "()", success: function (res) {
// gridImg: "/static/images/umale/gr8.png", if (res.confirm) {
// color: "#0D306B", //
// subcolor: "", uni.exit();
// disable: false, } else if (res.cancel) {
// toPage: "/subPublic/Store/Store", //
// }, }
// { },
// name: "()", });
// gridImg: "/static/images/umale/gr8.png", return true; //
// color: "#0D306B", }
// subcolor: "", return false;
// disable: false, },
// toPage: "/subEnterprise/threeGuarantees/index", onLoad() {
// }, // this.getCircle();
{
name: "活动管理(企业)",
gridImg: "/static/images/umale/gr8.png",
color: "#0D306B",
subcolor: "",
disable: false,
toPage: "/subEnterprise/activity/activity",
},
// {
// name: "()",
// gridImg: "/static/images/umale/gr8.png",
// color: "#0D306B",
// subcolor: "",
// disable: false,
// toPage: "/subEnterprise/WorkOrder/WorkOrder",
// },
],
userInfo: null,
time: null,
lat:null,
lng:null,
circleLat:null,
circleLng:null,
circleClock:null,
times:null,
queryParams: {
pageNum: 1,
pageSize: 10,
title: "",
status: 0
},
};
},
// ...
onBackPress(options) {
console.log("返回",options);
if (options.from == 'backbutton' || options.from == 'navigateBack') {
//
uni.showModal({
title: '退出应用',
content: '您确定要退出应用吗?',
success: function(res) {
if (res.confirm) {
//
uni.exit();
} else if (res.cancel) {
//
}
}
});
return true; //
}
return false;
},
onLoad(){
// this.getCircle();
this.getUserLocation();
this.times = setInterval(()=>{
console.log("获取用户位置信息");
this.getUserLocation();
},10000)
}, this.getUserLocation();
mounted() { this.times = setInterval(() => {
this.userInfo = uni.getStorageSync("userInfo") console.log("获取用户位置信息");
console.log(JSON.stringify(this.userInfo),"用户信息"); this.getUserLocation();
const currentDate = new Date(); }, 10000);
const year = currentDate.getFullYear(); // },
const month = currentDate.getMonth() + 1; // 01 mounted() {
const day = currentDate.getDate(); // this.userInfo = uni.getStorageSync("userInfo");
this.time = year + "年" + month + "月" + day + "日"; console.log(JSON.stringify(this.userInfo), "用户信息");
const currentDate = new Date();
}, const year = currentDate.getFullYear(); //
onShow() { const month = currentDate.getMonth() + 1; // 01
this.getNumber(); const day = currentDate.getDate(); //
}, this.time = year + "年" + month + "月" + day + "日";
methods: { },
getNumber(){ onShow() {
listNews({status: 0}).then((res) => { this.getNumber();
if(res.code == 200) { },
this.$nextTick(()=>{ methods: {
uni.setTabBarBadge({ getNumber() {
// listNews({ status: 0 }).then((res) => {
index: 1, //tabbar if (res.code == 200) {
text: res.total + '', // this.$nextTick(() => {
}); uni.setTabBarBadge({
}) //
} index: 1, //tabbar
}) text: res.total + "", //
}, });
goPath(item) { });
this.$tab.navigateTo(item.toPage); }
}, });
getUserLocation(){ },
let that = this; goPath(item) {
uni.getLocation({ this.$tab.navigateTo(item.toPage);
type: 'gcj02', //apigcj02 },
geocode :true, getUserLocation() {
success: function(res) { let that = this;
that.$modal.closeLoading(); uni.getLocation({
that.lat = res.latitude; type: "gcj02", //apigcj02
that.lng = res.longitude; geocode: true,
judgmentPosition({userId:that.userInfo.userId,latitude:res.latitude + '',longitude:res.longitude + ''}).then(position=>{ success: function (res) {
// console.log(position,"position"); that.$modal.closeLoading();
if(position.code == 200 && position.data){ that.lat = res.latitude;
getStatus({userId:that.userInfo.userId}).then(status=>{ that.lng = res.longitude;
if(status.code == 200){ judgmentPosition({
if(res.data.status == 0) { userId: that.userInfo.userId,
let data = {userId:that.userInfo.userId,latitude:res.latitude + '',longitude:res.longitude + ''} latitude: res.latitude + "",
return clock(data) longitude: res.longitude + "",
} })
} .then((position) => {
}).then(daka=>{ // console.log(position,"position");
if(data == 200) { if (position.code == 200 && position.data) {
clearInterval(that.times) getStatus({ userId: that.userInfo.userId })
} .then((status) => {
}) if (status.code == 200) {
} if (res.data.status == 0) {
}).catch(err=>{ let data = {
console.log(err,"position失败"); userId: that.userInfo.userId,
if(err == "未设置考勤组") { latitude: res.latitude + "",
// clearInterval(that.times) longitude: res.longitude + "",
} };
}) return clock(data);
// }
}, }
fail: function (err) { })
console.log("获取定位失败",err); .then((daka) => {
uni.showToast({ if (data == 200) {
title: '获取地址失败,将导致部分功能不可用', clearInterval(that.times);
icon:'none' }
}); });
clearInterval(that.times) }
} })
}); .catch((err) => {
}, console.log(err, "position失败");
// getCircle(){ if (err == "未设置考勤组") {
// console.log(this.userInfo,"userInfo"); // clearInterval(that.times)
// getUserIdByPoint({id:this.userInfo.userId}).then(res=>{ }
// console.log(res,""); });
// if(res.data.length > 0) { //
// this.circleLat = res.data[0].lat; },
// this.circleLng = res.data[0].lng; fail: function (err) {
// this.circleClock = res.data[0].clock; console.log("获取定位失败", err);
// } uni.showToast({
// }) title: "获取地址失败,将导致部分功能不可用",
// }, icon: "none",
}, });
}; clearInterval(that.times);
},
});
},
// getCircle(){
// console.log(this.userInfo,"userInfo");
// getUserIdByPoint({id:this.userInfo.userId}).then(res=>{
// console.log(res,"");
// if(res.data.length > 0) {
// this.circleLat = res.data[0].lat;
// this.circleLng = res.data[0].lng;
// this.circleClock = res.data[0].clock;
// }
// })
// },
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
.page { .page {
background-color: #f6f7f8; background-color: #f6f7f8;
.welcome { .welcome {
margin: 20rpx; margin: 20rpx;
height: 281rpx; height: 281rpx;
background-size: 100%; background-size: 100%;
background-image: url("@/static/images/umale/intr.png"); background-image: url("@/static/images/umale/intr.png");
background-repeat: no-repeat; background-repeat: no-repeat;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding-left: 31rpx; padding-left: 31rpx;
padding-top: 45rpx; padding-top: 45rpx;
.title { .title {
font-size: 36rpx; font-size: 36rpx;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
color: #ffffff; color: #ffffff;
text-shadow: 0px 3rpx 6rpx rgba(0, 42, 128, 0.4); text-shadow: 0px 3rpx 6rpx rgba(0, 42, 128, 0.4);
} }
.name { .name {
margin-top: 40rpx; margin-top: 40rpx;
font-size: 40rpx; font-size: 40rpx;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: bold; font-weight: bold;
color: #ffffff; color: #ffffff;
text-shadow: 0px 3rpx 6rpx rgba(0, 42, 128, 0.4); text-shadow: 0px 3rpx 6rpx rgba(0, 42, 128, 0.4);
} }
.date-weather { .date-weather {
margin-top: 40rpx; margin-top: 40rpx;
.date { .date {
font-size: 24rpx; font-size: 24rpx;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
color: #f0f2f6; color: #f0f2f6;
text-shadow: 0px 3rpx 6rpx rgba(0, 42, 128, 0.4); text-shadow: 0px 3rpx 6rpx rgba(0, 42, 128, 0.4);
} }
.weather { .weather {
margin-left: 50rpx; margin-left: 50rpx;
font-size: 24rpx; font-size: 24rpx;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
color: #f0f2f6; color: #f0f2f6;
text-shadow: 0rpx 3rpx 6rpx rgba(0, 42, 128, 0.4); text-shadow: 0rpx 3rpx 6rpx rgba(0, 42, 128, 0.4);
} }
} }
} }
.main-content { .main-content {
position: relative; position: relative;
.work-center { .work-center {
// position: absolute; // position: absolute;
// top: 10rpx; // top: 10rpx;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 0 30rpx; padding: 0 30rpx;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
&>view { & > view {
width: 48%; width: 48%;
height: 210rpx; height: 210rpx;
margin-bottom: 22rpx; margin-bottom: 22rpx;
position: relative; position: relative;
.grid-img { .grid-img {
height: 100%; height: 100%;
width: 100%; width: 100%;
display: block; display: block;
} }
.grid-name { .grid-name {
position: absolute; position: absolute;
top: 27rpx; top: 27rpx;
left: 26rpx; left: 26rpx;
font-size: 36rpx; font-size: 36rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: bold;
} }
} }
&>view:nth-child(odd) { & > view:nth-child(odd) {
margin-right: 4%; margin-right: 4%;
} }
} }
} }
} }
</style> </style>

@ -133,12 +133,6 @@ export default {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
}); });
}, },
//
handleYq() {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/WorkOrder/postpone",
});
},
activeStateColor: function (value) { activeStateColor: function (value) {
switch (value) { switch (value) {
case 1: case 1:

@ -0,0 +1,128 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="水生态治理科教"
:autoBack="true"
:placeholder="true"
>
</u-navbar>
<u-search
height="75rpx"
placeholder="搜索关键词"
v-model="queryParams.sbLevelName"
shape="square"
:showAction="false"
:clearabled="true"
class="view-global"
bgColor="#fff"
@search="onSearch"
@clear="onClear"
></u-search>
<view></view>
</view>
</template>
<script>
import { listLevel } from "../../api/jn/level";
export default {
data() {
return {
//
form: {},
levelList: [],
//
queryParams: {
sbLevelName: null,
},
};
},
onLoad() {
this.getList();
},
methods: {
onSearch() {
this.getList();
},
onClear() {
this.queryParams.sbLevelName = "";
this.getList();
},
getList() {
listLevel(this.queryParams).then((res) => {
// console.log(res);
this.levelList = res.rows;
});
},
//
reset() {
this.form = {
id: null,
activeName: null,
activeStart: null,
activeEnd: null,
activeContent: null,
activePoint: null,
joinRequire: null,
activeState: null,
createId: null,
createBy: null,
createTime: null,
updateId: null,
updateBy: null,
updateTime: null,
remark: null,
gridId: null,
gridName: null,
partId: null,
partName: null,
};
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
.list-item {
background-color: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 25rpx;
margin-bottom: 30rpx;
margin-top: 30rpx;
.item-cell {
display: flex;
align-items: center;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
.cell-btn {
display: flex;
flex-direction: row-reverse;
}
& > view:not(.cell-btn) {
margin-bottom: 20rpx;
}
}
& > .list-item:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,237 +0,0 @@
<template>
<view class="app-container">
<u-navbar
title="通讯录"
:autoBack="true"
:placeholder="true"
leftText="返回"
>
<view slot="right">
<text class="nav-right">消息</text>
</view>
</u-navbar>
<u-search
placeholder="搜索关键词"
v-model="keyword"
shape="square"
:showAction="false"
bgColor="#FFFFFF"
class="view-global"
height="74rpx"
></u-search>
<view class="grid-title">
<image
src="/static/images/grid-icon.png"
mode="aspectFit"
class="grid-icon"
></image>
<text class="grid-main-title">常用联系人</text>
</view>
<view class="linkMan-list view-global">
<view class="link-item">
<view class="link-data">
<image
src="/static/images/linkMan.png"
class="linkMan-icon"
mode=""
></image>
<text class="linkMan-name">张三</text>
</view>
<view class="link-btn"
><u-button
text="呼叫"
icon="mic"
size="small"
color="#32B78B"
iconColor="#fff"
></u-button
></view>
</view>
<view class="link-item">
<view class="link-data">
<image
src="/static/images/linkMan.png"
class="linkMan-icon"
mode=""
></image>
<text class="linkMan-name">李四</text>
</view>
<view class="link-btn"
><u-button
text="呼叫"
icon="mic"
size="small"
color="#32B78B"
iconColor="#fff"
></u-button
></view>
</view>
<view class="link-item">
<view class="link-data">
<image
src="/static/images/linkMan.png"
class="linkMan-icon"
mode=""
></image>
<text class="linkMan-name">王五</text>
</view>
<view class="link-btn"
><u-button
text="呼叫"
icon="mic"
size="small"
color="#32B78B"
iconColor="#fff"
></u-button
></view>
</view>
<view class="link-item">
<view class="link-data">
<image
src="/static/images/linkMan.png"
class="linkMan-icon"
mode=""
></image>
<text class="linkMan-name">陈二</text>
</view>
<view class="link-btn"
><u-button
text="呼叫"
icon="mic"
size="small"
color="#32B78B"
iconColor="#fff"
></u-button
></view>
</view>
<view class="link-item">
<view class="link-data">
<image
src="/static/images/linkMan.png"
class="linkMan-icon"
mode=""
></image>
<text class="linkMan-name">葛云</text>
</view>
<view class="link-btn"
><u-button
text="呼叫"
icon="mic"
size="small"
color="#32B78B"
iconColor="#fff"
></u-button
></view>
</view>
<view class="link-item">
<view class="link-data">
<image
src="/static/images/linkMan.png"
class="linkMan-icon"
mode=""
></image>
<text class="linkMan-name">马天笑</text>
</view>
<view class="link-btn"
><u-button
text="呼叫"
icon="mic"
size="small"
color="#32B78B"
iconColor="#fff"
></u-button
></view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
keyword: null,
sysHeigth: 0,
};
},
onLoad() {
this.sysHeigth = uni.$u.sys().statusBarHeight + (44 + 12.5);
console.log(this.sysHeigth);
},
methods: {
back() {
uni.navigateBack({
delta: 1,
});
},
//
rightClick() {
console.log("单击了");
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
box-sizing: border-box;
padding: 25rpx 20rpx;
.grid-title {
margin: 30rpx 0 20rpx 0;
display: flex;
align-items: center;
.grid-icon {
width: 40rpx;
height: 25rpx;
}
.grid-main-title {
margin-left: 25rpx;
font-size: 32rpx;
font-weight: bold;
color: #0f1316;
}
}
.linkMan-list {
background-color: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 25rpx;
.link-item {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 30rpx;
.link-data {
display: flex;
align-items: center;
.linkMan-icon {
height: 55rpx;
width: 55rpx;
}
.linkMan-name {
margin-left: 25rpx;
font-size: 32rpx;
font-weight: 400;
color: #34373b;
}
}
.link-btn {
width: 132rpx;
}
}
& > .link-item:last-child {
margin-bottom: 0;
}
}
}
</style>

@ -1,97 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="店铺检查记录"
:autoBack="true"
:placeholder="true"
/>
<view class="list-item active view-global" v-for="item in 2" :key="item">
<view class="item-cell">
<view class="cell-lable">店铺名称</view>
<view class="cell-value">南京市XX街道XX路66号XX店</view>
</view>
<view class="item-cell">
<view class="cell-lable">检查时间</view>
<view class="cell-value">2023-09-12</view>
</view>
<view class="item-cell">
<view class="cell-lable">检查人员</view>
<view class="cell-value">张三</view>
</view>
<view class="item-cell">
<view class="cell-lable">发现隐患</view>
<view class="cell-value">XXXXXXX</view>
</view>
<view class="item-cell">
<view class="cell-lable">是否发起整改</view>
<view class="cell-value"></view>
</view>
<view class="item-cell">
<view class="cell-lable">整改复查情况</view>
<view class="cell-value">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxx</view>
</view>
</view>
<fixed-buttom title="新增检查"></fixed-buttom>
</view>
</template>
<script>
export default {
data() {
return {};
},
methods: {
handelAdd() {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/FieldTest/add",
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
.list-item {
background-color: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 25rpx;
margin-bottom: 30rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
& > .item-cell:last-child {
margin-bottom: 0;
}
.cell-btn {
display: flex;
flex-direction: row-reverse;
}
}
& > .list-item:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,104 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="现场检查记录"
:autoBack="true"
:placeholder="true"
/>
<view class="list-item active view-global" v-for="item in 2" :key="item">
<view class="item-cell">
<view class="cell-lable">店铺名称</view>
<view class="cell-value">南京市XX街道XX路66号XX店</view>
</view>
<view class="item-cell">
<view class="cell-lable">检查时间</view>
<view class="cell-value">2023-09-12</view>
</view>
<view class="item-cell">
<view class="cell-lable">检查人员</view>
<view class="cell-value">张三</view>
</view>
<view class="item-cell">
<view class="cell-lable">发现隐患</view>
<view class="cell-value">XXXXXXX</view>
</view>
<view class="item-cell">
<view class="cell-lable">是否发起整改</view>
<view class="cell-value"></view>
</view>
<view class="cell-btn">
<u-button
text="案件移交"
size="small"
color="linear-gradient(90deg, #3976F1 0%, #3CA0F6 100%)"
:custom-style="{
width: '130rpx',
height: '65rpx',
margin: '0',
}"
></u-button>
</view>
</view>
<fixed-buttom title="新增现场检查" @click="handelAdd"></fixed-buttom>
</view>
</template>
<script>
export default {
data() {
return {};
},
methods: {
handelAdd() {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/FieldTest/add",
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
.list-item {
background-color: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 25rpx;
margin-bottom: 30rpx;
.item-cell {
display: flex;
align-items: center;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
.cell-btn {
display: flex;
flex-direction: row-reverse;
}
& > view:not(.cell-btn) {
margin-bottom: 20rpx;
}
}
& > .list-item:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,344 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="现场检查录入"
:autoBack="true"
:placeholder="true"
/>
<view class="form-item">
<view class="form-title">
现场检查打卡
<text></text>
</view>
<view class="item-input">
<u-button
text="点击打卡"
size="small"
color="linear-gradient(90deg, #3976F1 0%, #3CA0F6 100%)"
:custom-style="{
width: '130rpx',
height: '65rpx',
margin: '0',
}"
></u-button>
<view class="already">
<u-icon
name="checkmark-circle-fill"
color="#32B78B"
size="28rpx"
></u-icon>
<text>已完成打卡</text>
</view>
</view>
</view>
<view class="form-item">
<view class="form-title"><text></text>店铺名称</view>
<view class="nob-input view-global">
<u--input
placeholder="请输入名称"
border="none"
:customStyle="{ height: '45rpx' }"
v-model="value"
></u--input>
</view>
</view>
<view class="form-item">
<view class="form-title"><text></text>发现隐患</view>
<view class="nob-input view-global">
<u--textarea
v-model="value"
placeholder="请输入内容"
border="none"
></u--textarea>
</view>
</view>
<view class="form-item">
<view class="form-title"><text></text>现场照片</view>
<view class="upload-images nob-input view-global">
<view class="upload-btn">
<view class="upload-icon" @click="upload">
<u-icon
name="camera-fill"
size="50rpx"
color="rgb(211, 212, 214)"
></u-icon>
</view>
<text class="upload-text"
>最多可上传5个图片支持上传jpg.png等格式文件</text
>
</view>
<view class="file-list">
<view
class="file-item"
v-for="(item, index) in fileList"
:key="index"
>
<view class="close-btn">
<u-icon name="minus-circle-fill" color="#EB5B47"></u-icon>
</view>
<image :src="item.url" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
<view class="form-item">
<view class="form-title"><text></text>现场录音文件</view>
<view class="upload-images nob-input view-global">
<view class="upload-btn">
<view class="upload-icon" @click="upload">
<u-icon
name="plus"
size="50rpx"
color="rgb(211, 212, 214)"
></u-icon>
</view>
</view>
<view class="audio-list">
<view class="list-item" v-for="item in 3" :key="item">
<view class="item-name">
<image
src="/static/images/file-type.png"
mode=""
class="item-type"
></image>
asdadad.mp3
</view>
<u-icon name="minus-circle-fill" color="#EB5B47"></u-icon>
</view>
</view>
</view>
</view>
<view class="form-item">
<view class="form-title"><text></text>是否发起整改</view>
<view class="form-radio">
<u-radio-group v-model="radiovalue1" placement="row">
<u-radio
:customStyle="{ marginRight: '80rpx' }"
v-for="(item, index) in radiolist1"
:key="index"
:label="item.name"
:name="item.name"
>
</u-radio>
</u-radio-group>
</view>
</view>
<view class="form-item">
<view class="form-title"><text></text>设置整改时限</view>
<view
class="nob-input view-global"
style="display: flex; align-items: center"
>
<u--input
placeholder="请输入名称"
border="none"
:customStyle="{ height: '45rpx' }"
v-model="value"
></u--input>
<text style="color: #9da2ab; font-size: 28rpx">工作日</text>
</view>
</view>
<view class="form-item">
<view class="form-title"><text></text>是否发送至主体</view>
<view class="form-radio">
<u-radio-group v-model="radiovalue1" placement="row">
<u-radio
:customStyle="{ marginRight: '80rpx' }"
v-for="(item, index) in radiolist1"
:key="index"
:label="item.name"
:name="item.name"
>
</u-radio>
</u-radio-group>
</view>
</view>
<view v-show="false">
<uni-file-picker ref="files" />
</view>
<fixed-buttom title="提交"></fixed-buttom>
</view>
</template>
<script>
export default {
data() {
return {
value: null,
radiovalue1: "是",
fileList: [
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
],
radiolist1: [
{
name: "是",
disabled: false,
},
{
name: "否",
disabled: false,
},
],
};
},
methods: {
upload() {
this.$refs.files.choose();
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
.form-item {
.form-title {
position: relative;
font-size: 30rpx;
font-weight: bold;
color: #2e2f31;
margin-bottom: 20rpx;
}
.form-title text {
content: "";
position: absolute;
left: 0;
bottom: 0;
height: 12rpx;
width: 140rpx;
background: url("/static/images/juxing.png");
background-size: cover;
max-width: 300rpx;
z-index: 0;
}
.item-input {
margin-bottom: 30rpx;
display: flex;
align-items: center;
.already {
margin-left: 45rpx;
display: flex;
align-items: center;
text {
margin-left: 10rpx;
font-size: 24rpx;
font-weight: 400;
color: #313335;
}
}
}
.nob-input {
margin-bottom: 30rpx;
border-radius: 16rpx;
background-color: #fff;
box-sizing: border-box;
padding: 25rpx;
}
.upload-images {
.upload-btn {
display: flex;
align-items: center;
.upload-icon {
height: 150rpx;
width: 150rpx;
background-color: #f4f5f7;
border-radius: 4rpx;
margin-right: 20rpx;
display: flex;
align-items: center;
justify-content: center;
}
.upload-text {
flex: 1;
color: rgb(192, 196, 204);
}
}
.file-list {
display: flex;
align-items: center;
margin-top: 40rpx;
.file-item {
width: calc((100% / 5) - 20rpx);
height: 115rpx;
margin-right: calc(20rpx + (20rpx / 4));
position: relative;
image {
display: inline-block;
height: 100%;
width: 100%;
}
.close-btn {
position: absolute;
right: -10rpx;
top: -10rpx;
z-index: 10;
}
}
& > .file-item:last-child {
margin-right: 0;
}
}
.audio-list {
.list-item {
margin-top: 20rpx;
width: 40%;
display: flex;
justify-content: space-between;
align-items: center;
.item-name {
display: flex;
align-items: center;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
.item-type {
height: 28rpx;
width: 28rpx;
margin-right: 15rpx;
}
}
}
}
}
.form-radio {
margin-bottom: 30rpx;
box-sizing: border-box;
padding: 0 25rpx;
}
}
}
</style>

@ -1,136 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="信息发布"
:autoBack="true"
:placeholder="true"
/>
<view class="list-item active view-global" v-for="item in 2" :key="item">
<view class="item-cell">
<view class="cell-lable">信息标题</view>
<view class="cell-value">关于XXXXXXX安全的要求</view>
</view>
<view class="item-cell">
<view class="cell-lable">发布时间</view>
<view class="cell-value">2023-09-12 16:20:00</view>
</view>
<view class="item-cell">
<view class="cell-lable">发布人员</view>
<view class="cell-value">张三</view>
</view>
<view class="item-cell" style="align-items: flex-start">
<view class="cell-lable">推送店铺</view>
<view class="cell-value"
>XXX店铺XXX店铺XXX店铺XXX店铺XXX店铺</view
>
</view>
<view class="item-cell" style="align-items: flex-start">
<view class="cell-lable">信息内容</view>
<view class="cell-value"
>XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX</view
>
</view>
<view class="cell-btn">
<u-button
text="删除"
size="small"
color="linear-gradient(90deg, #F8404C 0%, #FF5C66 100%)"
:custom-style="{
width: '130rpx',
height: '65rpx',
margin: '0',
}"
></u-button>
<u-button
text="编辑"
size="small"
color="linear-gradient(90deg, #F17539 0%, #F6993C 100%)"
v-show="item != 1"
:custom-style="{
width: '130rpx',
height: '65rpx',
margin: '0 20rpx 0 0',
}"
@click="handleAdd(1)"
></u-button>
</view>
</view>
<fixed-buttom title="新增信息" @click="handleAdd()"></fixed-buttom>
</view>
</template>
<script>
export default {
data() {
return {};
},
methods: {
//
handleAdd(id) {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/MsgIssue/add",
params: {
id,
},
});
},
//
handleFc() {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/WorkOrder/info",
});
},
//
handleYq() {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/WorkOrder/postpone",
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
.list-item {
background-color: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 25rpx;
margin-bottom: 30rpx;
.item-cell {
display: flex;
align-items: center;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
.cell-btn {
display: flex;
flex-direction: row-reverse;
}
& > view:not(.cell-btn) {
margin-bottom: 20rpx;
}
}
& > .list-item:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,245 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
:title="title"
:autoBack="true"
:placeholder="true"
/>
<view class="form-item">
<view class="form-title">
信息标题
<text></text>
</view>
<view class="item-input view-global">
<u--input
placeholder="请输入标题"
border="none"
:customStyle="{ height: '45rpx' }"
v-model="value"
></u--input>
</view>
</view>
<view class="form-item">
<view class="form-title">
信息内容
<text></text>
</view>
<view class="item-input view-global">
<u--textarea
v-model="value"
placeholder="请输入内容"
border="none"
></u--textarea>
</view>
</view>
<view class="form-item">
<view class="form-title">
推送店铺
<text></text>
</view>
<view class="sel-cell view-global">
<view class="item-input" style="flex: 1; margin: 0 20rpx 0 0">
<u--input
placeholder="请输入标题"
border="none"
:customStyle="{ height: '45rpx' }"
v-model="value"
></u--input>
</view>
<u-button
text="店铺列表"
size="small"
color="linear-gradient(90deg, #32B78B 0%, #00B579 100%)"
:custom-style="{
width: '130rpx',
height: '75rpx',
margin: '0',
}"
@click="handleList()"
></u-button>
</view>
</view>
<u-popup :show="show" @close="close">
<view class="shop-main">
<!-- @scrolltolower="reachBottom()" -->
<u-search
height="75rpx"
placeholder="搜索关键词"
v-model="keyword"
shape="square"
:showAction="false"
></u-search>
<scroll-view
scroll-y
:style="{
height: 'calc(100% - (75rpx + 20rpx + 100rpx))',
marginTop: '20rpx',
border: '1px soild red',
}"
>
<u-radio-group
v-model="radio"
:borderBottom="true"
placement="column"
:labelDisabled="false"
>
<u-radio
activeColor="#367BEF"
:customStyle="{ padding: '20rpx' }"
v-for="item in 10"
:key="item"
>
<view class="radio-cell">
<text class="cell-mainTitle">xxxxxx店铺1</text>
<view class="cell-sub">
<view class="sub-data">
<view class="sub-icon"></view>
<view class="sub-name">食品销售</view>
</view>
<view class="sub-data">
<view class="sub-icon"></view>
<view class="sub-name">xxxx街道xxxx路xxx号</view>
</view>
</view>
</view>
</u-radio>
</u-radio-group>
</scroll-view>
<view class="shop-btn">
<u-button
text="重置"
size="small"
:custom-style="{
width: '160rpx',
height: '75rpx',
margin: '0',
}"
@click="handleList()"
></u-button>
<u-button
text="确认(2/601)"
size="small"
color="linear-gradient(90deg, #3976F1 0%, #3CA0F6 100%)"
:custom-style="{
flex: '1',
height: '75rpx',
margin: '0 0 0 20rpx',
}"
@click="handleList()"
></u-button>
</view>
</view>
</u-popup>
<fixed-buttom title="发布"></fixed-buttom>
</view>
</template>
<script>
export default {
data() {
return {
radio: null,
value: "",
show: false,
keyword: "",
title: "",
};
},
onLoad(option) {
this.title = option.id ? "编辑信息" : "新增信息";
},
methods: {
close() {
this.show = false;
},
handleList() {
this.show = true;
},
},
};
</script>
<style lang="scss" scoped>
.form-item {
.form-title {
position: relative;
font-size: 30rpx;
font-weight: bold;
color: #2e2f31;
margin-bottom: 20rpx;
}
.form-title text {
content: "";
position: absolute;
left: 0;
bottom: 0;
height: 12rpx;
width: 140rpx;
background: url("/static/images/juxing.png");
background-size: cover;
max-width: 300rpx;
z-index: 0;
}
.item-input {
margin-bottom: 30rpx;
border-radius: 16rpx;
background-color: #fff;
box-sizing: border-box;
padding: 25rpx;
}
}
.sel-cell {
display: flex;
align-items: center;
}
.shop-main {
height: 80vh;
background-color: #fff;
box-sizing: border-box;
padding: 20rpx;
position: relative;
.shop-btn {
position: absolute;
left: 0;
bottom: 0%;
width: 100%;
display: flex;
align-items: center;
background: #fff;
padding: 20rpx;
border-top: 1px solid #dce3ec;
box-shadow: 10rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
}
}
.radio-cell {
.cell-mainTitle {
font-size: 32rpx;
font-weight: 500;
color: #34373b;
}
.cell-sub {
display: flex;
align-items: center;
margin-top: 10rpx;
}
.sub-data {
display: flex;
align-items: center;
.sub-name {
font-size: 24rpx;
font-weight: 500;
color: #9da2ab;
}
}
}
</style>

@ -1,132 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="安全生产监督"
:autoBack="true"
:placeholder="true"
/>
<view class="codes-cell view-global" @click="handelCode()">
<image src="/static/images/code.png" class="codes-icon" mode=""></image>
<text class="codes-title">扫描商家二维码</text>
</view>
<view class="cell-list">
<view
class="cell-item view-global"
v-for="(item, index) in cellList"
@click="handelPath(item.path)"
:style="{
color: index == 0 ? '#C06E37' : index == 1 ? '#6664BE' : '#6682A4',
}"
:key="index"
:class="'cell' + index"
>
{{ item.name }}
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
cellList: [
{
name: "现场检查",
path: "/subViolation/ShengchanJiandu/FieldTest/FieldTest",
},
{
name: "整改工单",
path: "/subViolation/ShengchanJiandu/WorkOrder/WorkOrder",
},
{
name: "信息发布",
path: "/subViolation/ShengchanJiandu/MsgIssue/MsgIssue",
},
],
};
},
methods: {
//
handelCode() {
// // #ifdef H5
// uni.showToast({
// title: 'H5',
// icon: 'none'
// })
// return
// // #endif
// uni.scanCode({
// success: () => {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/CodesInfo",
});
// }
// })
},
handelPath(path) {
uni.$u.route({
url: path,
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
padding: 40rpx 20rpx 20rpx 20rpx;
.codes-cell {
height: 118rpx;
background: linear-gradient(180deg, #7cadff 0%, #367bef 100%);
border-radius: 16rpx;
display: flex;
align-items: center;
justify-content: center;
.codes-icon {
height: 72rpx;
width: 72rpx;
margin-right: 50rpx;
}
.codes-title {
font-size: 40rpx;
font-weight: bold;
color: #ffffff;
}
}
.cell-list {
margin-top: 45rpx;
& > .cell-item {
height: 176rpx;
line-height: 176rpx;
font-size: 38rpx;
font-weight: bold;
box-sizing: border-box;
padding-left: 70rpx;
border-radius: 16rpx;
background-size: 100% 100%;
margin-bottom: 30rpx;
}
}
}
.cell0 {
background: url("@/static/images/cell0.png");
}
.cell1 {
background: url("@/static/images/cell1.png");
}
.cell2 {
background: url("@/static/images/cell2.png");
}
</style>

@ -1,127 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="整改工单"
:autoBack="true"
:placeholder="true"
/>
<view class="list-item active view-global" v-for="item in 2" :key="item">
<view class="item-cell">
<view class="cell-lable">整改工单编号</view>
<view class="cell-value">202309120001</view>
</view>
<view class="item-cell">
<view class="cell-lable">整改主体名称</view>
<view class="cell-value">南京市XX街道XX路66号XX店</view>
</view>
<view class="item-cell">
<view class="cell-lable">整改截止时间</view>
<view class="cell-value">2023-09-12</view>
</view>
<view class="item-cell">
<view class="cell-lable">检察人员</view>
<view class="cell-value">张图</view>
</view>
<view class="item-cell">
<view class="cell-lable">发现隐患</view>
<view class="cell-value">xxxxxxxxxxxxx</view>
</view>
<view class="item-cell">
<view class="cell-lable">是否整改完成</view>
<view class="cell-value"></view>
</view>
<view class="cell-btn">
<u-button
text="整改复查"
size="small"
color="linear-gradient(90deg, #3976F1 0%, #3CA0F6 100%)"
:custom-style="{
width: '130rpx',
height: '65rpx',
margin: '0',
}"
@click="handleFc()"
></u-button>
<u-button
text="申请延期"
size="small"
color="linear-gradient(90deg, #F17539 0%, #F6993C 100%)"
v-show="item != 1"
:custom-style="{
width: '130rpx',
height: '65rpx',
margin: '0 20rpx 0 0',
}"
@click="handleYq()"
></u-button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
},
methods: {
//
handleFc() {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/WorkOrder/info",
});
},
//
handleYq() {
uni.$u.route({
url: "/subViolation/ShengchanJiandu/WorkOrder/postpone",
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
.list-item {
background-color: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 25rpx;
margin-bottom: 30rpx;
.item-cell {
display: flex;
align-items: center;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
.cell-btn {
display: flex;
flex-direction: row-reverse;
}
& > view:not(.cell-btn) {
margin-bottom: 20rpx;
}
}
& > .list-item:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,260 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="整改复查"
:autoBack="true"
:placeholder="true"
/>
<view class="basic-data">
<view class="basic-title">
<image
src="/static/images/grid-icon.png"
class="title-icon"
mode="aspectFill"
></image>
<text class="title-text">基本信息</text>
</view>
<view class="basic-main view-global">
<view class="item-cell">
<view class="cell-lable">整改工单编号</view>
<view class="cell-value">202309120001</view>
</view>
<view class="item-cell">
<view class="cell-lable">店铺名称</view>
<view class="cell-value">XXX食杂店</view>
</view>
<view class="item-cell">
<view class="cell-lable">检查相关隐患</view>
<view class="cell-value">XXXXXXXXXXXXXXXXXXXXX</view>
</view>
<view class="item-cell" style="display: block">
<view class="cell-lable">隐患照片</view>
<view class="cell-value" style="margin-top: 20rpx">
<view class="info-images">
<view
class="file-item"
v-for="(item, index) in fileList"
:key="index"
>
<image :src="item.url" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="basic-data">
<view class="basic-title">
<image
src="/static/images/grid-icon.png"
class="title-icon"
mode="aspectFill"
></image>
<text class="title-text">复查照片</text>
</view>
<view class="basic-main upload-images view-global">
<view class="upload-btn">
<view class="upload-icon" @click="upload">
<u-icon
name="camera-fill"
size="50rpx"
color="rgb(211, 212, 214)"
></u-icon>
</view>
<text class="upload-text"
>最多可上传5个图片支持上传jpg.png等格式文件</text
>
</view>
<view class="file-list">
<view
class="file-item"
v-for="(item, index) in fileList"
:key="index"
>
<view class="close-btn">
<u-icon name="minus-circle-fill" color="#EB5B47"></u-icon>
</view>
<image :src="item.url" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
<view class="basic-data">
<view class="basic-title">
<image
src="/static/images/grid-icon.png"
class="title-icon"
mode="aspectFill"
></image>
<text class="title-text">复查结果</text>
</view>
<view class="basic-main view-global">
<u--textarea
v-model="value"
placeholder="请输入内容"
border="none"
></u--textarea>
</view>
</view>
<view v-show="false">
<uni-file-picker ref="files" />
</view>
<fixed-buttom title="提交"></fixed-buttom>
</view>
</template>
<script>
export default {
data() {
return {
value: "",
fileList: [
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
{
url: "https://cdn.uviewui.com/uview/album/1.jpg",
},
],
};
},
methods: {
upload() {
this.$refs.files.choose();
},
},
};
</script>
<style lang="scss" scoped>
.basic-title {
display: flex;
align-items: center;
margin-bottom: 10rpx;
.title-icon {
height: 25rpx;
width: 40rpx;
}
.title-text {
margin-left: 25rpx;
font-size: 32rpx;
font-weight: bold;
color: #0f1316;
}
}
.basic-main {
margin-bottom: 30rpx;
border-radius: 16rpx;
background: #fff;
box-sizing: border-box;
padding: 25rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
.info-images {
display: flex;
align-items: center;
.file-item {
width: calc((100% / 3) - 19rpx);
height: 160rpx;
margin-right: calc(19rpx + (19rpx / 3));
position: relative;
image {
display: inline-block;
height: 100%;
width: 100%;
}
}
& > .file-item:last-child {
margin-right: 0;
}
}
}
}
& > .item-cell:last-child {
margin-bottom: 0;
}
}
.upload-images {
.upload-btn {
display: flex;
align-items: center;
.upload-icon {
height: 150rpx;
width: 150rpx;
background-color: #f4f5f7;
border-radius: 4rpx;
margin-right: 20rpx;
display: flex;
align-items: center;
justify-content: center;
}
.upload-text {
flex: 1;
color: rgb(192, 196, 204);
}
}
.file-list {
display: flex;
align-items: center;
margin-top: 40rpx;
.file-item {
width: calc((100% / 5) - 20rpx);
height: 115rpx;
margin-right: calc(20rpx + (20rpx / 4));
position: relative;
image {
display: inline-block;
height: 100%;
width: 100%;
}
.close-btn {
position: absolute;
right: -10rpx;
top: -10rpx;
z-index: 10;
}
}
& > .file-item:last-child {
margin-right: 0;
}
}
}
</style>

@ -1,138 +0,0 @@
<template>
<view class="app-container">
<u-navbar
leftText="返回"
title="申请延期"
:autoBack="true"
:placeholder="true"
/>
<view class="basic-data">
<view class="basic-title">
<image
src="/static/images/grid-icon.png"
class="title-icon"
mode="aspectFill"
></image>
<text class="title-text">基本信息</text>
</view>
<view class="basic-main view-global">
<view class="item-cell">
<view class="cell-lable">整改工单编号</view>
<view class="cell-value">202309120001</view>
</view>
<view class="item-cell">
<view class="cell-lable">整改主体名称</view>
<view class="cell-value">南京市XX街道XX路66号XX店</view>
</view>
<view class="item-cell">
<view class="cell-lable">整改截止时间</view>
<view class="cell-value">2023-09-12</view>
</view>
</view>
<view class="basic-data">
<view class="basic-title">
<image
src="/static/images/grid-icon.png"
class="title-icon"
mode="aspectFill"
></image>
<text class="title-text">延期时长</text>
</view>
<view
class="basic-main view-global"
style="display: flex; align-items: center"
>
<u--input
placeholder="请输入延期时长"
border="none"
:customStyle="{ height: '45rpx' }"
v-model="value"
></u--input>
<text style="color: #9da2ab; font-size: 28rpx">工作日</text>
</view>
</view>
<view class="basic-data">
<view class="basic-title">
<image
src="/static/images/grid-icon.png"
class="title-icon"
mode="aspectFill"
></image>
<text class="title-text">延期原因</text>
</view>
<view class="basic-main view-global">
<u--textarea
v-model="value1"
placeholder="请输入内容"
border="none"
></u--textarea>
</view>
</view>
</view>
<fixed-buttom title="提交"></fixed-buttom>
</view>
</template>
<script>
export default {
data() {
return {
value: 0,
value1: "",
};
},
methods: {},
};
</script>
<style lang="scss" scoped>
.basic-title {
display: flex;
align-items: center;
margin-bottom: 10rpx;
.title-icon {
height: 25rpx;
width: 40rpx;
}
.title-text {
margin-left: 25rpx;
font-size: 32rpx;
font-weight: bold;
color: #0f1316;
}
}
.basic-main {
margin-bottom: 30rpx;
border-radius: 16rpx;
background: #fff;
box-sizing: border-box;
padding: 25rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
font-weight: 400;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
& > .item-cell:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,196 +0,0 @@
<template>
<view class="app-container">
<u-navbar leftText="返回" title="脱岗记录" :autoBack="true" :placeholder="true" />
<view class="list-search">
<view class="timers">
<uni-datetime-picker v-model="timers" type="daterange" rangeSeparator='至' @change="maskClick" />
</view>
<button class="search-btn u-reset-button" @click="search"></button>
</view>
<view class="list">
<view class="list-item" v-for="(item, index) in newList" :key="index" @click="handleInfo(item.id)">
<view class="item-cell">
<view class="cell-lable">脱岗人员姓名</view>
<view class="cell-value u-line-1">{{item.userName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属网格</view>
<view class="cell-value">{{item.gridName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">脱岗时间</view>
<view class="cell-value">{{item.leaveTime}}</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">脱岗路段</view>
<view class="cell-value u-line-1">xxxxx街道xxx路</view>
</view> -->
<view class="item-cell">
<view class="cell-lable">脱岗时长</view>
<view class="cell-value">{{item.leaveDuty}}</view>
</view>
</view>
<u-loadmore :status="status" :load-text="loadText" />
</view>
</view>
</template>
<script>
import {
tgwtList,
} from "@/api/jn/offDuty.js"
export default {
data() {
return {
status: 'loadmore',
show: false,
timers: null,
query: {
},
queryParams: {
type: 2,
current: 1,
size: 10,
},
newList: [],
flag: 1,
loadText: {
loading: "努力加载中...",
nomore: "已经到底了~",
},
total: 0,
isClick:false,
};
},
onLoad() {
this.getList();
},
//
onReachBottom() {
if (this.newList.length < this.total) {
if (this.status == 'loading') return
this.queryParams.current = this.queryParams.current + 1;
this.getList()
}
},
methods: {
getList() {
uni.showToast({
icon: 'loading',
title: '加载中'
});
this.status = 'loading'
if(this.timers?.length > 1 && this.isClick) {
this.queryParams.params["beginCreateTime"] = this.timers[0];
this.queryParams.params["endCreateTime"] = this.timers[1];
}
tgwtList(this.queryParams).then(res => {
this.newList = [...this.newList, ...res.data.records]
uni.hideToast();
this.total = res.data.total
this.status = 'nomore'
})
},
search() {
this.isClick = true;
this.getList();
},
maskClick(e) {
},
handleInfo(id) {
uni.navigateTo({
url: `/subViolation/TuogangList/info?id=${id}`
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
box-sizing: border-box;
padding: 25rpx 20rpx;
}
.list-search {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 25rpx;
// .start-time,
// .end-time {
// width: 260rpx;
// height: 88rpx;
// background: #ffffff;
// box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
// border-radius: 16rpx;
// display: flex;
// align-items: center;
// justify-content: center;
// }
// .search-unit {
// font-size: 32rpx;
// font-weight: 500;
// color: #2e2f31;
// }
.timers {
width: 80%;
}
.search-btn {
width: 100rpx;
height: 70rpx;
line-height: 70rpx;
font-size: 30rpx;
font-weight: 500;
color: #ffffff;
text-align: center;
background: linear-gradient(90deg, #3976f1 0%, #3ca0f6 100%);
border-radius: 16rpx;
margin: 0;
margin-left: 10rpx;
}
}
.list-item {
box-sizing: border-box;
padding: 25rpx;
background: #fff;
margin-bottom: 30rpx;
box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
border-radius: 16rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
&>.item-cell:last-child {
margin-bottom: 0;
}
}
.list-item:active {
background: #f3f4f6;
}
.list>.list-item:last-child {
margin-bottom: 0;
}
</style>

@ -1,172 +0,0 @@
<template>
<view class="app-container">
<u-navbar leftText="返回" :title="status==0?'脱岗申诉':status==1?'脱岗审批':''" :autoBack="true" :placeholder="true" />
<uni-forms ref="valiForm" :rules="rules" :modelValue="valiForm" label-width="85" v-if="status == 0">
<uni-forms-item label="复核理由:" name="reason">
<uni-easyinput type="textarea" v-model="valiForm.reason" placeholder="请输入复核理由" />
</uni-forms-item>
</uni-forms>
<view class="list-item" v-else>
<!-- <view class="item-cell">
<view class="cell-lable">脱岗记录编号</view>
<view class="cell-value u-line-1"></view>
</view>
<view class="item-cell">
<view class="cell-lable">脱岗记录标题</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">脱岗人员姓名</view>
<view class="cell-value">{{newList.userName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属网格</view>
<view class="cell-value">{{newList.gridName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属部门</view>
<view class="cell-value">{{newList.partName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">脱岗时间</view>
<view class="cell-value u-line-1">{{newList.leaveTime}}</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">脱岗路段</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">脱岗时长</view>
<view class="cell-value">{{newList.leaveDuty}}分钟</view>
</view>
<view class="item-cell">
<view class="cell-lable">复核理由</view>
<view class="cell-value">{{newList.reason}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">复核审批</view>
<view class="cell-value">
<uni-data-checkbox v-model="baseFormData.approval" :localdata="sexs" />
</view>
</view>
</view>
<fixed-buttom @click="submit" :title="status==0?'提交申诉':status==1?'提交审批':''"></fixed-buttom>
</view>
</template>
<script>
import {
tgwtSs,
tgwtGet,
tgwtSp
} from "@/api/jn/offDuty.js"
export default {
data() {
return {
status: null,
valiForm: {
reason: '',
id: 0,
},
rules: {
reason: {
rules: [{
required: true,
errorMessage: '复核理由不能为空'
}]
},
},
newList: [],
sexs: [{
text: '同意',
value: 0
}, {
text: '拒绝',
value: 1
}, ],
baseFormData: {
approval: 0,
id: 0,
}
}
},
onLoad(e) {
this.valiForm.id = e.id
this.baseFormData.id = e.id
this.status = e.status
if (this.status != 0) {
uni.showToast({
icon: 'loading',
title: '加载中'
});
tgwtGet(e.id).then(res => {
this.newList = res.data
uni.hideToast();
})
}
},
methods: {
submit() {
if (this.status == 0) {
this.$refs.valiForm.validate().then(res => {
uni.showToast({
icon: 'success',
title: '提交申诉成功'
});
tgwtSs(this.valiForm).then((res) => {
uni.hideToast();
uni.navigateBack({
delta: 1
});
})
}).catch(err => {})
} else {
uni.showToast({
icon: 'success',
title: '审批成功'
});
tgwtSp(this.baseFormData).then((res) => {
uni.hideToast();
uni.navigateBack({
delta: 1
});
})
}
}
}
}
</script>
<style lang="scss" scoped>
.list-item {
box-sizing: border-box;
padding: 25rpx;
background: #fff;
margin-bottom: 30rpx;
box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
border-radius: 16rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
&>.item-cell:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,137 +0,0 @@
<template>
<view class="app-container">
<u-navbar leftText="返回" title="脱岗详情" :autoBack="true" :placeholder="true" />
<view class="list-item">
<!-- <view class="item-cell">
<view class="cell-lable">脱岗记录编号</view>
<view class="cell-value u-line-1"></view>
</view>
<view class="item-cell">
<view class="cell-lable">脱岗记录标题</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">脱岗人员姓名</view>
<view class="cell-value">{{newList.userName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属网格</view>
<view class="cell-value">{{newList.gridName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属部门</view>
<view class="cell-value">{{newList.partName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">脱岗时间</view>
<view class="cell-value u-line-1">{{newList.leaveTime}}</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">脱岗路段</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">脱岗时长</view>
<view class="cell-value">{{newList.leaveDuty}}分钟</view>
</view>
<view class="item-cell" v-if="newList.status!=0">
<view class="cell-lable">复核理由</view>
<view class="cell-value">{{newList.reason}}</view>
</view>
<view class="item-cell" v-if="[2, 3].includes(newList.status)">
<view class="cell-lable">复核结果</view>
<view class="cell-value" :style="`${
newList.approval == 0 ? 'color:#52CD80' : 'color:#F76359'
}`">{{newList.approval == 0 ? '已同意' : '已拒绝'}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">状态</view>
<view class="cell-value">
<span v-if="newList.status == 0" style="color: rgb(82, 205, 128);"></span>
<span v-if="newList.status == 1" style="color: rgb(255, 127, 53)"></span>
<span v-if="newList.status == 2" style="color: #7A808A"></span>
<span v-if="newList.status == 3" style="color: rgb(247, 99, 89)"></span>
</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">脱岗详情</view>
<view class="cell-value"></view>
</view> -->
</view>
<fixed-buttom :title="newList.status == 0?'申诉':'审批'" @click="toFuHe"
v-if="newList.status == 0||newList.status == 1"></fixed-buttom>
</view>
</template>
<script>
import {
tgwtGet,
} from "@/api/jn/offDuty.js"
export default {
data() {
return {
newList: {},
id: 0,
};
},
onShow() {
uni.showToast({
icon: 'loading',
title: '加载中'
});
tgwtGet(this.id).then(res => {
this.newList = res.data
uni.hideToast();
})
},
onLoad(e) {
this.id = e.id
},
methods: {
toFuHe() {
uni.navigateTo({
url: `/subViolation/TuogangList/complaint?id=${this.newList.id}&status=${this.newList.status}`
});
}
}
};
</script>
<style lang="scss" scoped>
.app-container {
box-sizing: border-box;
padding: 25rpx 20rpx;
.list-item {
box-sizing: border-box;
padding: 25rpx;
background: #fff;
margin-bottom: 30rpx;
box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
border-radius: 16rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
&>.item-cell:last-child {
margin-bottom: 0;
}
}
}
</style>

@ -1,196 +0,0 @@
<template>
<view class="app-container">
<u-navbar leftText="返回" title="违停记录" :autoBack="true" :placeholder="true" />
<view class="list-search">
<view class="timers">
<uni-datetime-picker v-model="timers" type="daterange" rangeSeparator='至' @change="maskClick" />
</view>
<button class="search-btn u-reset-button" @click="search"></button>
</view>
<view class="list">
<view class="list-item" v-for="(item, index) in newList" :key="index" @click="handleInfo(item.id)">
<view class="item-cell">
<view class="cell-lable">违停人员姓名</view>
<view class="cell-value u-line-1">{{item.userName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属网格</view>
<view class="cell-value">{{item.gridName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">违停时间</view>
<view class="cell-value">{{item.leaveTime}}</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">违停路段</view>
<view class="cell-value u-line-1">xxxxx街道xxx路</view>
</view> -->
<view class="item-cell">
<view class="cell-lable">违停时长</view>
<view class="cell-value">{{item.leaveDuty}}</view>
</view>
</view>
<u-loadmore :status="status" :load-text="loadText" />
</view>
</view>
</template>
<script>
import {
tgwtList,
} from "@/api/jn/offDuty.js"
export default {
data() {
return {
status: 'loadmore',
show: false,
timers: null,
query: {
},
queryParams: {
type: 1,
current: 1,
size: 10,
},
newList: [],
flag: 1,
loadText: {
loading: "努力加载中...",
nomore: "已经到底了~",
},
total: 0,
isClick:false,
};
},
onLoad() {
this.getList();
},
//
onReachBottom() {
if (this.newList.length < this.total) {
if (this.status == 'loading') return
this.queryParams.current = this.queryParams.current + 1;
this.getList()
}
},
methods: {
getList() {
uni.showToast({
icon: 'loading',
title: '加载中'
});
this.status = 'loading';
if(this.timers?.length > 1 && this.isClick) {
this.queryParams.params["beginCreateTime"] = this.timers[0];
this.queryParams.params["endCreateTime"] = this.timers[1];
}
tgwtList(this.queryParams).then(res => {
this.newList = [...this.newList, ...res.data.records]
uni.hideToast();
this.total = res.data.total
this.status = 'nomore'
})
},
search() {
this.isClick = true;
this.getList()
},
maskClick(e) {
},
handleInfo(id) {
uni.navigateTo({
url: `/subViolation/ViolationList/info?id=${id}`
});
},
},
};
</script>
<style lang="scss" scoped>
.app-container {
box-sizing: border-box;
padding: 25rpx 20rpx;
}
.list-search {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 25rpx;
// .start-time,
// .end-time {
// width: 260rpx;
// height: 88rpx;
// background: #ffffff;
// box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
// border-radius: 16rpx;
// display: flex;
// align-items: center;
// justify-content: center;
// }
// .search-unit {
// font-size: 32rpx;
// font-weight: 500;
// color: #2e2f31;
// }
.timers {
width: 80%;
}
.search-btn {
width: 100rpx;
height: 70rpx;
line-height: 70rpx;
font-size: 30rpx;
font-weight: 500;
color: #ffffff;
text-align: center;
background: linear-gradient(90deg, #3976f1 0%, #3ca0f6 100%);
border-radius: 16rpx;
margin: 0;
margin-left: 10rpx;
}
}
.list-item {
box-sizing: border-box;
padding: 25rpx;
background: #fff;
margin-bottom: 30rpx;
box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
border-radius: 16rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
&>.item-cell:last-child {
margin-bottom: 0;
}
}
.list-item:active {
background: #f3f4f6;
}
.list>.list-item:last-child {
margin-bottom: 0;
}
</style>

@ -1,172 +0,0 @@
<template>
<view class="app-container">
<u-navbar leftText="返回" :title="status==0?'违停申诉':status==1?'违停审批':''" :autoBack="true" :placeholder="true" />
<uni-forms ref="valiForm" :rules="rules" :modelValue="valiForm" label-width="85" v-if="status == 0">
<uni-forms-item label="复核理由:" name="reason">
<uni-easyinput type="textarea" v-model="valiForm.reason" placeholder="请输入复核理由" />
</uni-forms-item>
</uni-forms>
<view class="list-item" v-else>
<!-- <view class="item-cell">
<view class="cell-lable">违停记录编号</view>
<view class="cell-value u-line-1"></view>
</view>
<view class="item-cell">
<view class="cell-lable">违停记录标题</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">违停人员姓名</view>
<view class="cell-value">{{newList.userName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属网格</view>
<view class="cell-value">{{newList.gridName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属部门</view>
<view class="cell-value">{{newList.partName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">违停时间</view>
<view class="cell-value u-line-1">{{newList.leaveTime}}</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">违停路段</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">违停时长</view>
<view class="cell-value">{{newList.leaveDuty}}分钟</view>
</view>
<view class="item-cell">
<view class="cell-lable">复核理由</view>
<view class="cell-value">{{newList.reason}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">复核审批</view>
<view class="cell-value">
<uni-data-checkbox v-model="baseFormData.approval" :localdata="sexs" />
</view>
</view>
</view>
<fixed-buttom @click="submit" :title="status==0?'提交申诉':status==1?'提交审批':''"></fixed-buttom>
</view>
</template>
<script>
import {
tgwtSs,
tgwtGet,
tgwtSp
} from "@/api/jn/offDuty.js"
export default {
data() {
return {
status: null,
valiForm: {
reason: '',
id: 0,
},
rules: {
reason: {
rules: [{
required: true,
errorMessage: '复核理由不能为空'
}]
},
},
newList: [],
sexs: [{
text: '同意',
value: 0
}, {
text: '拒绝',
value: 1
}, ],
baseFormData: {
approval: 0,
id: 0,
}
}
},
onLoad(e) {
this.valiForm.id = e.id
this.baseFormData.id = e.id
this.status = e.status
if (this.status != 0) {
uni.showToast({
icon: 'loading',
title: '加载中'
});
tgwtGet(e.id).then(res => {
this.newList = res.data
uni.hideToast();
})
}
},
methods: {
submit() {
if (this.status == 0) {
this.$refs.valiForm.validate().then(res => {
uni.showToast({
icon: 'success',
title: '提交申诉成功'
});
tgwtSs(this.valiForm).then((res) => {
uni.hideToast();
uni.navigateBack({
delta: 1
});
})
}).catch(err => {})
} else {
uni.showToast({
icon: 'success',
title: '审批成功'
});
tgwtSp(this.baseFormData).then((res) => {
uni.hideToast();
uni.navigateBack({
delta: 1
});
})
}
}
}
}
</script>
<style lang="scss" scoped>
.list-item {
box-sizing: border-box;
padding: 25rpx;
background: #fff;
margin-bottom: 30rpx;
box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
border-radius: 16rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
&>.item-cell:last-child {
margin-bottom: 0;
}
}
</style>

@ -1,137 +0,0 @@
<template>
<view class="app-container">
<u-navbar leftText="返回" title="违章详情" :autoBack="true" :placeholder="true" />
<view class="list-item">
<!-- <view class="item-cell">
<view class="cell-lable">违停记录编号</view>
<view class="cell-value u-line-1"></view>
</view>
<view class="item-cell">
<view class="cell-lable">违停记录标题</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">违停人员姓名</view>
<view class="cell-value">{{newList.userName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属网格</view>
<view class="cell-value">{{newList.gridName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">所属部门</view>
<view class="cell-value">{{newList.partName}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">违停时间</view>
<view class="cell-value u-line-1">{{newList.leaveTime}}</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">违停路段</view>
<view class="cell-value"></view>
</view> -->
<view class="item-cell">
<view class="cell-lable">违停时长</view>
<view class="cell-value">{{newList.leaveDuty}}分钟</view>
</view>
<view class="item-cell" v-if="newList.status!=0">
<view class="cell-lable">复核理由</view>
<view class="cell-value">{{newList.reason}}</view>
</view>
<view class="item-cell" v-if="[2, 3].includes(newList.status)">
<view class="cell-lable">复核结果</view>
<view class="cell-value" :style="`${
newList.approval == 0 ? 'color:#52CD80' : 'color:#F76359'
}`">{{newList.approval == 0 ? '已同意' : '已拒绝'}}</view>
</view>
<view class="item-cell">
<view class="cell-lable">状态</view>
<view class="cell-value">
<span v-if="newList.status == 0" style="color: rgb(82, 205, 128);"></span>
<span v-if="newList.status == 1" style="color: rgb(255, 127, 53)"></span>
<span v-if="newList.status == 2" style="color: #7A808A"></span>
<span v-if="newList.status == 3" style="color: rgb(247, 99, 89)"></span>
</view>
</view>
<!-- <view class="item-cell">
<view class="cell-lable">违停详情</view>
<view class="cell-value"></view>
</view> -->
</view>
<fixed-buttom :title="newList.status == 0?'申诉':'审批'" @click="toFuHe"
v-if="newList.status == 0||newList.status == 1"></fixed-buttom>
</view>
</template>
<script>
import {
tgwtGet,
} from "@/api/jn/offDuty.js"
export default {
data() {
return {
newList: {},
id: 0,
};
},
onShow() {
uni.showToast({
icon: 'loading',
title: '加载中'
});
tgwtGet(this.id).then(res => {
this.newList = res.data
uni.hideToast();
})
},
onLoad(e) {
this.id = e.id
},
methods: {
toFuHe() {
uni.navigateTo({
url: `/subViolation/ViolationList/complaint?id=${this.newList.id}&status=${this.newList.status}`
});
}
}
};
</script>
<style lang="scss" scoped>
.app-container {
box-sizing: border-box;
padding: 25rpx 20rpx;
.list-item {
box-sizing: border-box;
padding: 25rpx;
background: #fff;
margin-bottom: 30rpx;
box-shadow: 0rpx 0rpx 20rpx rgba(57, 118, 241, 0.06);
border-radius: 16rpx;
.item-cell {
display: flex;
align-items: center;
margin-bottom: 20rpx;
.cell-lable {
width: 200rpx;
font-size: 28rpx;
color: #9da2ab;
}
.cell-value {
flex: 1;
font-size: 28rpx;
font-weight: 400;
color: #2e2f31;
}
}
&>.item-cell:last-child {
margin-bottom: 0;
}
}
}
</style>
Loading…
Cancel
Save