main
姜玉琦 2023-11-19 22:40:09 +08:00
parent 9a79644257
commit f174b02b63
15 changed files with 927 additions and 6 deletions

View File

@ -30,10 +30,10 @@ App({
// reqUrl:"http://wxw.ngrok.makalu.cc",
//reqUrl:'https://jaapplets.makalu.cc',
//reqUrl:'https://sxyanzhu.com/jhwxapp',
reqUrl:'https://cf.makalu.cc',
//reqUrl:'http://127.0.0.1:8091',
uploadUrl:"https://cf.makalu.cc/wechat",
//uploadUrl:'http://127.0.0.1:8091/wechat',
//reqUrl:'https://cf.makalu.cc',
reqUrl:'http://127.0.0.1:8091',
//uploadUrl:"https://cf.makalu.cc/wechat",
uploadUrl:'http://127.0.0.1:8091/wechat',
//御景路数字化集成管控平台接口访问域名
szhUrl:'https://szh.makalu.cc',

View File

@ -111,7 +111,10 @@
"project_insurance/info/index",
"project_insurance/list/index",
"project_deptWorks/add/index",
"project_deptWorks/list/index"
"project_deptWorks/list/index",
"project_standard/list/index",
"project_standard/add/index",
"project_standard/info/index"
],
"independent": false
}

View File

@ -19,7 +19,7 @@
<view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">隐患图片</view>
<view class="problem_list_info_con">
<file-uploader bindimages="onImagesArr"></file-uploader>
<file-uploader bindimages="onImagesArr"></file-uploader>
</view>
</view>
<view class="inspect_info_list">

View File

@ -0,0 +1,267 @@
// pageage/safetyManagement/addSafetyInspect/index.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
deptId:"",
projectId:"",
projectName:"",
loginName:"",
imageInfoData:[],
loadShow:false,
standardType:"1",
standardTypeList:[],
info:"",
standardDesc:""
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let {projectId,projectName} = options
//获取缓存数据
wx.getStorage({
key: 'userinfo',
success:res=>{
this.setData({
projectId,
projectName,
deptId:res.data.deptId,
loginName:res.data.loginName
})
this.getStandardTypeList();
}
})
},
getStandardTypeList(){
let that = this
wx.request({
url: app.globalData.reqUrl+'/wechat/projectStandard/queryStandardType',
method:"get",
data:{},
header:{
'content-type': 'application/x-www-form-urlencoded'
},
success(res){
res = res.data
if(res.code == 200){
let list=[];
res.data.forEach(it =>{
list.push({"id":it.dictValue,"text":it.dictLabel,"info":it.remark});
})
that.setData({
standardTypeList:list,
standardType:res.data[0].dictValue,
info:res.data[0].remark
})
}
}
})
},
//图片描述
onInputStandardDesc(e){
let standardDesc = e.detail.value
this.setData({
standardDesc
})
},
// list 上传图片
onImagesArr(e){
var data = this.data.imageInfoData
data = e.detail
this.setData({
imageInfoData:data
})
},
//取消页面
cancelSaveView(){
this.returnToPage()
},
//保存
onSave(){
this.setData({
loadShow:true
})
let that = this
let {projectId,loginName, deptId,standardType,standardDesc,imageInfoData} = that.data;
//数据效验
if(projectId==""||loginName==""||deptId==""){
app.toast("数据异常,请刷新页面重试!")
that.setData({
loadShow:false
})
return;
}
if(imageInfoData.length==0){
app.toast("请上传标准图片!")
that.setData({
loadShow:false
})
return;
}
if(standardType==""){
app.toast("请选择标准类型!")
that.setData({
loadShow:false
})
return;
}
if(standardDesc==""){
app.toast("请填写图片描述!")
that.setData({
loadShow:false
})
return;
}
let fileUrls = [];
imageInfoData.forEach(async (item)=>{
let uploadUrl = app.globalData.uploadUrl+'/common/upload'
let name = "file"
//这里复杂的图片上传,改为同步上传,因为小程序只能上传一张图片
let obj = await that.syncUploadImage(uploadUrl,item,name);
fileUrls.push(obj.data.fileName);
//验证图片上传完毕
if(fileUrls.length == imageInfoData.length){
let params = {
projectId,
deptId,
imageFile:fileUrls.toString(),
standardType,
standardDesc,
ord:1,
createBy:loginName
}
wx.request({
url: app.globalData.reqUrl + '/wechat/projectStandard/add',
method:"POST",
data:params,
header: {
"Username": loginName,
"Content-Type": "application/json"
},
success(res){
that.setData({
loadShow:false
})
res = res.data
if(res.code == 200){
app.toast("添加成功!")
setTimeout(()=>{
wx.redirectTo({
url: '../list/index',
})
},200)
}
}
})
}
})
},
/**
* 这里考虑上传图片异步问题封装为同步
*/
syncUploadImage(url,uploadFile,name) {
return new Promise((resolve, reject) => {
wx.uploadFile({
url, // 上传的服务器接口地址
filePath: uploadFile,
header: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
},
name, //上传的所需字段,后端提供
formData: { user: 'test' },
success: (res) => {
// 上传完成操作
const data = JSON.parse(res.data)
resolve({
data: data
})
},
fail: (err) => {
//上传失败修改pedding为reject
console.log("访问接口失败", err);
wx.showToast({
title: "网络出错,上传失败",
icon: 'none',
duration: 1000
});
reject(err)
}
});
})
},
//选择测量类型
onSelectStandardType(e){
this.setData({
standardType:e.detail.id,
info:e.detail.info
})
},
returnToPage: function () {
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
wx.redirectTo({
url: '../list/index',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,6 @@
{
"usingComponents": {
"van-overlay": "@vant/weapp/overlay/index"
},
"navigationStyle":"custom"
}

View File

@ -0,0 +1,101 @@
<!--pageage/safetyManagement/addSafetyInspect/index.wxml-->
<view class="header_title">
<view class="header_title_row">
<van-row>
<van-col span="4">
<view class="header_img" bindtap="returnToPage"><image src="/images/left.png"></image></view>
</van-col>
<van-col span="15">
<view class="header_name">新增项目标准</view>
</van-col>
</van-row>
</view>
</view>
<view class="max_content">
<view class="inspect_info ">
<view class="module_title module_title_flex">
<view>{{projectName}}</view>
</view>
<view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">标准类型</view>
<view class="inspect_info_content">
<voucher-select columns="{{standardTypeList}}" placeholder="请选择标准类型" bindchange="onSelectStandardType"></voucher-select>
</view>
<view class="inspect_info_content">
<text class="color_blue">{{info}}</text>
</view>
</view>
<view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">标准图片</view>
<view class="problem_list_info_con">
<file-uploader bindimages="onImagesArr" limit="{{1}}"></file-uploader>
</view>
</view>
<view class="inspect_info_list" >
<view class="inspect_info_title">图片描述</view>
<view class="inspect_info_content">
<textarea class="add_textarea" placeholder="请填写图片描述"
placeholder-style="color:#6777aa;" bindinput="onInputStandardDesc" maxlength="200"/>
</view>
</view>
</view>
<view class="problem_submit_to">
<view class="problem_submit_to_btn" bindtap="cancelSaveView">取消</view>
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="onSave">提交</view>
</view>
</view>
<van-overlay show="{{loadShow}}">
<view class="gif">
<image src="../../../images/loding2.gif"></image>
<view>数据加载中!请稍后...</view>
</view>
</van-overlay>

View File

@ -0,0 +1,7 @@
/* pageage/safetyManagement/addSafetyInspect/index.wxss */
.van-popup{
background: none !important;
}
.van-image__img{
border-radius: 10rpx !important;
}

View File

@ -0,0 +1,182 @@
// pageage/project_checking/info/index.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
id:"",
infoData:{},
loadShow:false,
loginName:"",
projectName:"",
showDel:false,
imageList:[],
minImageList:[],
request:app.globalData.reqUrl
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let {id} = options
//获取缓存数据
wx.getStorage({
key: 'userinfo',
success:res=>{
this.setData({
id,
loginName:res.data.loginName,
projectName:app.globalData.projectName
})
this.getInfo();
}
})
},
/**
* 获取安全检查详情信息
*
*/
getInfo(){
let {id} = this.data
let that = this
wx.request({
url: app.globalData.reqUrl+'/wechat/projectStandard/info',
method:"get",
data:{
id:id
},
success(res){
res = res.data
if(res.code == 200){
let urls = [];
let minUrls = [];
if(res.data.imageFile){
res.data.imageFile.split(',').forEach(element => {
urls.push(that.data.request+element);
minUrls.push(that.data.request+element+'.min.jpg');
});
}
that.setData({
infoData:res.data,
imageList:urls,
minImageList:minUrls,
loadShow:false
})
//判断当前能否删除
if(res.data.createBy!=that.data.loginName){
that.setData({
showDel:true
})
}
}
}
})
},
onDelete(){
//弹出确认
let that = this
wx.showModal({
title: '提示',
content: '是否确定删除此条数据?',
success: function (sm) {
if (sm.confirm) {
// 用户点击了确定 可以调用了
that.deleteData();
} else if (sm.cancel) {
console.log('用户点击取消');
}
}
})
},
deleteData(){
let {id} = this.data
let that = this;
wx.request({
url: app.globalData.reqUrl+'/wechat/projectStandard/remove',
header: {
"Username": that.data.loginName,
},
data:{
id:id
},
method:"get",
success(res){
app.toast("删除成功!")
wx.redirectTo({
url: `../list/index`,
})
}
})
},
//展示图片
showImg:function(e){
var that=this;
wx.previewImage({
urls: that.data.imageList,
current: that.data.imageList[e.currentTarget.dataset.index]
})
},
returnToPage: function () {
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
wx.redirectTo({
url: '../list/index',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,7 @@
{
"usingComponents": {
"van-collapse": "@vant/weapp/collapse",
"van-collapse-item": "@vant/weapp/collapse-item"
},
"navigationStyle":"custom"
}

View File

@ -0,0 +1,70 @@
<!--pageage/safetyManagement/problemRectification/index.wxml-->
<view class="header_title">
<view class="header_title_row">
<van-row>
<van-col span="4">
<view class="header_img" bindtap="returnToPage"><image src="/images/left.png"></image></view>
</van-col>
<van-col span="15">
<view class="header_name">实测实量详情</view>
</van-col>
</van-row>
</view>
</view>
<view class="max_content">
<view class="inspect_overview_max">
<view class="inspect_overview">
<view class="module_title module_title_padding">
<view>{{projectName}}</view>
</view>
<view class="inspect_overview_list_max">
<view class="inspect_overview_list">
<van-row>
<van-col span="6"><text class="color_purple">标准类型</text></van-col>
<van-col span="18" class="color_blue">{{infoData.standardTypeName}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list color_blue">{{infoData.standardTypeRemark}}</view>
<view class="inspect_overview_list">
<van-row>
<van-col span="6"><text class="color_purple">标准图片</text></van-col>
<view class="problem_list_info_con in-img-max">
<view class="in-img-div" wx:for="{{minImageList}}" wx:key="index">
<image bindtap='showImg' data-index="{{index}}" src='{{item}}'></image>
</view>
</view>
</van-row>
</view>
<view class="inspect_overview_list">
<van-row>
<van-col span="6"><text class="color_purple">图片描述</text></van-col>
<van-col span="18">{{infoData.standardDesc}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list">
<van-row>
<van-col span="6"><text class="color_purple">提交单位</text></van-col>
<van-col span="18">{{infoData.deptName}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list">
<van-row>
<van-col span="6"><text class="color_purple">提交用户</text></van-col>
<van-col span="18">{{infoData.createBy}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list">
<van-row>
<van-col span="6"><text class="color_purple">提交时间</text></van-col>
<van-col span="18">{{infoData.createTime}}</van-col>
</van-row>
</view>
</view>
</view>
</view>
<view class="problem_submit_to" wx:if="{{showDel}}">
<view class="problem_submit_to_btn problem_submit_to_delete" bindtap="onDelete">删除</view>
<view class="problem_submit_to_btn" bindtap="returnToPage">返回</view>
</view>
</view>

View File

@ -0,0 +1,70 @@
/* pageage/project_checking/info/index.wxss */
.in-img-max:after{
display:block;
clear:both;
content:"";
visibility:hidden;
height:0
}
.in-img-max{
width: auto;
zoom:1
}
.in-img-div{
position: relative;
margin: 0 8px 8px 0;
float: left;
}
.in-img-div image{
width: 180rpx;
height: 180rpx;
border-radius: 15rpx;
position: relative;
}
.van-collapse.van-hairline--top-bottom:after{
border-width: 0px 0;
}
.van-cell.van-cell--borderless{
background-color: #2b345b;
color: #fff;
margin-top: 30rpx;
border-radius: 5rpx;
}
.van-cell.van-cell--borderless:active{
background-color: #2b345b;
}
.van-collapse-item__title.van-collapse-item__title--expanded:active{
background-color: #2b345b;
}
.van-collapse-item .van-cell:after{
border-bottom: 0;
}
.van-collapse-item.van-hairline--top:after{
border-top-width:0
}
.van-cell.van-cell--clickable{
background-color: #2b345b;
margin-top: 30rpx;
color: #fff;
border-radius: 15rpx;
}
.van-cell.van-cell--clickable:active{
background-color: #2b345b;
}
.van-collapse-item__wrapper .van-collapse-item__content{
background-color: #1e2336;
color:#8ca4ec ;
border-width: 0px 0;
}
.gk_open_con view{
padding: 10rpx 0;
width: 100%;
}
.gk_open_con image{
width: 30rpx;
height: 30rpx;
margin-right: 5rpx;
position: relative;
top: 5rpx;
}

View File

@ -0,0 +1,143 @@
// pageage/safetyManagement/securityCheckGR/index.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
deptId:"",
loginName:"",
projectId:"",
minRoleId:"",
projectData:{},
initData: {},
show:false,
listData:[],
request:app.globalData.reqUrl
},
skipAdd(){
wx.redirectTo({
url: `../add/index?projectId=${this.data.initData.id}&projectName=`+this.data.initData.text,
})
},
getInfo(e){
let {id} = e.currentTarget.dataset.set
wx.redirectTo({
url: `../info/index?id=${id}`
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
//获取缓存数据
wx.getStorage({
key: 'userinfo',
success:res=>{
this.setData({
deptId:res.data.deptId,
loginName:res.data.loginName,
userName:res.data.userName,
projectId:app.globalData.projectId,
minRoleId:res.data.minRoleId,
initData:{text:app.globalData.projectName,id:app.globalData.projectId}
})
this.getListData(app.globalData.projectId,res.data.deptId,res.data.minRoleId);
}
})
},
/**
* 查询项目举牌验收数据
*/
getListData(projectId,deptId,minRoleId) {
var that = this;
//判断角色,
if(minRoleId==2||minRoleId==3||minRoleId==4){
deptId=0;
}
let param = {
"projectId": projectId,
"deptId":deptId,
}
wx.request({
url: app.globalData.reqUrl + '/wechat/projectStandard/list',
data:param,
method: "get",
success: function (res) {
that.setData({
listData:res.data.data
})
}
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
returnToPage: function () {
/*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/
wx.redirectTo({
url: '../../../pages/gengduogongneng/gengduogongneng',
})
},
//项目切换 返回值
onProjectSelect(e){
let projectId = e.detail.id;
let projectName = e.detail.text;
app.globalData.projectId = projectId;
app.globalData.projectName = projectName;
this.onLoad();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,7 @@
{
"usingComponents": {
"van-overlay": "@vant/weapp/overlay/index" ,
"van-popup": "@vant/weapp/popup/index"
},
"navigationStyle":"custom"
}

View File

@ -0,0 +1,57 @@
<view class="header_title">
<view class="header_title_row">
<van-row>
<van-col span="4">
<view class="header_img" bindtap="returnToPage"><image src="/images/left.png"></image></view>
</van-col>
<van-col span="15">
<view class="header_name">项目标准管理</view>
</van-col>
</van-row>
</view>
</view>
<view class="max_content">
<project-select init="{{initData}}" bindchange="onProjectSelect"></project-select>
<view class="inspect_max">
<view class="inspect_list">
<view class="inspect_for" v-if="{{ listData.length>0 }}" wx:for="{{listData}}" wx:key="index" data-set="{{item}}" bindtap="getInfo">
<view class="inspect_for_bgd">
<view class="inspect_list_title">
<view class="inspect_list_title_label inspect_list_title_width">
<view class="inspect_list_title_number">{{index < 9 ?'0'+(index+1):(index+1)}}</view>
<view class="module_title module_title_flex inspect_list_title_text">{{item.standardTypeName}}</view>
</view>
</view>
<view class="inspect_list_info">
<view class="inspect_list_info_details">
<view class="inspect_list_info_img">
<van-image width="120rpx" height="120rpx" fit="cover" src="{{request+item.mainImage+'.min.jpg'}}"/>
</view>
<view class="inspect_list_info_data">
<view class="inspect_list_info_data_prop"><text class="color_blue">{{item.standardDesc}}</text></view>
</view>
</view>
</view>
</view>
</view>
<view wx:if="{{listData.length==0}}">
<view style="padding-top: 70px;text-align: -webkit-center;">
<image src="../../../images/nodata.png" style="width: 130px;height: 105px;"></image>
<view style="color: #a5abbb;">暂无数据</view>
</view>
</view>
</view>
</view>
<view class="inspect_add_to" bindtap="skipAdd">
<view style="padding-top: 22rpx;">
<image src="../../../images/new_add.png"></image>
<view>新增</view>
</view>
</view>
</view>

View File

@ -0,0 +1 @@
/* pageage/project_checking_list/project_checking_list.wxss */