You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1891 lines
54 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// pages/completion/completion.js
const {
entryDetail,
API_BASE_URL,
install,
getActualCapacity,
accept,
IMG_BASE_URL,
installZc,
DEV,
getProviceCodeList,
createQrcode,getFormSet,findTypeReferenceListNew
} = require('../../../api/api')
const utilAddWatermark = require('../../../utils/addWatermark')
const utilGetLocation = require('../../../utils/getLocation')
import Dialog from '@vant/weapp/dialog/dialog';
Page({
data: {
IMG_BASE_URL: IMG_BASE_URL,
capture: ['album','camera'],
canvasHeight: 0,
canvasWidth: 0,
changeAddressType: 1, //默认购售电地址一致
DEV: DEV,
DEVACCOUNT: wx.getStorageSync('loginName'),
completeEnable: false, //完工按钮是否可以点击默认false不可点击
//安装
photoTips: [
{
sampleGraph: '',
showKey: 'safety_warning_img2',
must: '0',
status: '0',
key:'safetyWarningImg2',
num: 15,
title: '三级安全教育卡',
message: ''
},{
sampleGraph: '',
showKey: 'kg_condition_files',
must: '0',
status: '0',
key:'kgConditionFiles',
num: 15,
min: 1,
title: '安全防护措施合照照片',
message: ''
},
//华融
{
sampleGraph: '',
showKey: 'other_imgs5',
must: '0',
status: '0',
key:'otherImgs5',
num: 15,
title: '水槽细节照片',
message: ''
},{
sampleGraph: '',
showKey: 'other_imgs6',
must: '0',
status: '0',
key:'otherImgs6',
num: 15,
title: '落水管照片',
message: ''
},{
sampleGraph: '',
showKey: 'other_imgs7',
must: '0',
status: '0',
key:'otherImgs7',
num: 15,
title: '假梁-斜梁方向',
message: ''
},{
sampleGraph: '',
showKey: 'other_imgs8',
must: '0',
status: '0',
key:'otherImgs8',
num: 15,
title: '并网箱逆变器防雨罩照片',
message: ''
},
//广发
{
sampleGraph: '',
showKey: 'safety_warning_img2_03',
must: '0',
status: '0',
key:'safetyWarningImg2',
num: 15,
title: '施工安全图-三级安全教育',
message: ''
},{
sampleGraph: '',
showKey: 'safety_warning_img3',
must: '0',
status: '0',
key:'safetyWarningImg3',
num: 15,
title: '施工安全图-开工前站班会(施工安全用品:安全帽、安全绳、反光衣、工作鞋)',
message: ''
},{
sampleGraph: '',
showKey: 'safety_warning_img',
must: '0',
status: '0',
key:'safetyWarningImg',
num: 15,
title: '施工安全图-安全警示牌',
message: ''
},{
sampleGraph: '',
showKey: 'safety_disclose_doc_img',
must: '0',
status: '0',
key:'safetyDiscloseDocImg',
num: 15,
title: '施工安全图-安全技术交底书',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img10',
must: '0',
status: '0',
key:'zjImg10',
num: 9,
min: 3,
title: '基础安装-螺栓孔洞防水图',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img11',
must: '0',
status: '0',
key:'zjImg11',
num: 15,
title: '基础安装-柱脚防水完工图',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img5_03',
must: '0',
status: '0',
key:'zjImg5',
num: 15,
title: '支架安装图-支架安装完成VR图',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img8',
must: '0',
status: '0',
key:'zjImg8',
num: 15,
title: '支架安装图-支架方阵(东向西完工照)',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img9',
must: '0',
status: '0',
key:'zjImg9',
num: 15,
title: '支架安装图-支架方阵(北向南完工照)',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img4_03',
must: '0',
status: '0',
key:'zjImg4',
num: 15,
title: '支架安装图-立柱东西间距、南北间距(带尺寸)',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img12',
must: '0',
status: '0',
key:'zjImg12',
num: 15,
title: '支架安装图-斜梁悬挑(南)',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img13',
must: '0',
status: '0',
key:'zjImg13',
num: 15,
title: '支架安装图-斜梁悬挑(北)',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img14',
must: '0',
status: '0',
key:'zjImg14',
num: 15,
title: '支架安装图-檀条悬挑(东)',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img15',
must: '0',
status: '0',
key:'zjImg15',
num: 15,
title: '支架安装图-檀条悬挑(西)',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img4_03',
must: '0',
status: '0',
key:'jdImg4',
num: 15,
title: '支架接地图-支架接地',
message: ''
},{
sampleGraph: '',
showKey: 'component_img3',
must: '0',
status: '0',
key:'componentImg3',
num: 15,
title: '组件航拍俯视照片',
message: ''
},{
sampleGraph: '',
showKey: 'component_img4',
must: '0',
status: '0',
key:'componentImg4',
num: 15,
title: '组件安装完成VR视图',
message: ''
},{
sampleGraph: '',
showKey: 'bk_img1',
must: '0',
status: '0',
key:'bkImg1',
num: 15,
title: '边框接地图-边框与边框接地',
message: ''
},{
sampleGraph: '',
showKey: 'component_img1_03',
must: '0',
status: '0',
key:'componentImg1',
num: 15,
title: '边框接地图-组件安装倾角',
message: ''
},{
sampleGraph: '',
showKey: 'bk_img2',
must: '0',
status: '0',
key:'bkImg2',
num: 15,
title: '边框接地图-边框与支架接地',
message: ''
},{
sampleGraph: '',
showKey: 'bk_img3',
must: '0',
status: '0',
key:'bkImg3',
num: 15,
title: '边框接地图-其他图片',
message: ''
},{
sampleGraph: '',
showKey: 'yk_img1',
must: '0',
status: '0',
key:'ykImg1',
num: 15,
title: '压块或背压板照片',
message: ''
},{
sampleGraph: '',
showKey: 'dc_imgs_03',
must: '0',
status: '0',
key:'dcImgs',
num: 15,
title: '逆变器安装图-整体外观及走线及采集器(离地高度)',
message: ''
},{
sampleGraph: '',
showKey: 'nbq_plate_img_03',
must: '0',
status: '0',
key:'nbqPlateImg',
num: 15,
title: '逆变器安装图-铭牌',
message: ''
},{
sampleGraph: '',
showKey: 'total_imgs_03',
must: '0',
status: '0',
key:'totalImgs',
num: 15,
title: '逆变器安装图-接地情况',
message: ''
},{
sampleGraph: '',
showKey: 'nbq_zlc_img',
must: '0',
status: '0',
key:'nbqZlcImg',
num: 15,
title: '逆变器安装图-逆变器交流侧',
message: ''
},{
sampleGraph: '',
showKey: 'open_way_voltage_imgs_03',
must: '0',
status: '0',
key:'openWayVoltageImgs',
num: 15,
title: '逆变器安装图-组串开路电压照片',
message: ''
},{
sampleGraph: '',
showKey: 'nbq_zb_img_03',
must: '0',
status: '0',
key:'nbqZbImg',
num: 15,
title: '并网箱安装图-外观及走线(离地高度)',
message: ''
},{
sampleGraph: '',
showKey: 'bw_inner_img_03',
must: '0',
status: '0',
key:'bwInnerImg',
num: 15,
title: '并网箱安装图-并网箱内部全景',
message: ''
},{
sampleGraph: '',
showKey: 'bw_jd_img',
must: '0',
status: '0',
key:'bwJdImg',
num: 15,
title: '并网箱安装图-接地情况',
message: ''
},{
sampleGraph: '',
showKey: 'fix_other_img_03',
must: '0',
status: '0',
key:'fixOtherImg',
num: 15,
title: '线缆走向(屋顶、下墙)、线缆保护管(或桥架)敷设及固定照片',
message: ''
},{
sampleGraph: '',
showKey: 'size_measure_imgs_03',
must: '0',
status: '0',
key:'sizeMeasureImgs',
num: 15,
title: '电缆桥架内部电缆照片',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img8',
must: '0',
status: '0',
key:'jdImg8',
num: 15,
title: '接地极图-并网箱、逆变器安装接地极',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img5_03',
must: '0',
status: '0',
key:'jdImg5',
num: 15,
title: '接地极图-支架接地电阻阻值(近景)',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img11',
must: '0',
status: '0',
key:'jdImg11',
num: 15,
title: '接地极图-支架接地电阻测量照片(远景)',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img9',
must: '0',
status: '0',
key:'jdImg9',
num: 15,
title: '接地极图-并网箱、逆变器安装接地电阻阻值(近景)',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img12',
must: '0',
status: '0',
key:'jdImg12',
num: 15,
title: '接地极图-并网箱、逆变器安装接地电阻测量照片 (远景)',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img10',
must: '0',
status: '0',
key:'jdImg10',
num: 15,
title: '接地极图-接地引下线警示做法',
message: ''
},{
sampleGraph: '',
showKey: 'fs_img1',
must: '0',
status: '0',
key:'fsImg1',
num: 15,
title: '防水措施图-横竖向水槽',
message: ''
},{
sampleGraph: '',
showKey: 'fs_img2',
must: '0',
status: '0',
key:'fsImg2',
num: 15,
title: '防水措施图-落水管走向及其固定',
message: ''
},{
sampleGraph: '',
showKey: 'fs_img3',
must: '0',
status: '0',
key:'fsImg3',
num: 15,
title: '防水措施图-其他图片',
message: ''
},{
sampleGraph: '',
showKey: 'water_mud_clamp_imgs',
must: '0',
status: '0',
key:'waterMudClampImgs',
num: 15,
title: '导水排泥夹照片',
message: ''
},
//越秀
{
sampleGraph: '',
showKey: 'dzjc1',
must: '0',
status: '0',
key:'dzjc1',
num: 15,
title: '电站基础-主屋',
message: ''
},{
sampleGraph: '',
showKey: 'dzjc2',
must: '0',
status: '0',
key:'dzjc2',
num: 15,
title: '电站基础-副屋',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img1',
must: '0',
status: '0',
key:'zjImg1',
num: 15,
title: '支架正面照片',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img2',
must: '0',
status: '0',
key:'zjImg2',
num: 15,
title: '支架侧视图',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img3',
must: '0',
status: '0',
key:'zjImg3',
num: 15,
title: '支架北侧照片',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img4',
must: '0',
status: '0',
key:'zjImg4',
num: 15,
title: '支架型号照片',
message: ''
},{
sampleGraph: '',
showKey: 'zj_img5',
must: '0',
status: '0',
key:'zjImg5',
num: 15,
title: '航拍图照片',
message: ''
},{
sampleGraph: '',
showKey: 'component_img1',
must: '0',
status: '0',
key:'componentImg1',
num: 15,
title: '组件倾角照片',
message: ''
},{
sampleGraph: '',
showKey: 'component_img2',
must: '0',
status: '0',
key:'componentImg2',
num: 15,
title: '组件方位角照片',
message: ''
},{
sampleGraph: '',
showKey: 'size_measure_imgs',
must: '0',
status: '0',
key:'sizeMeasureImgs',
num: 15,
title: '屋顶线缆安装照片',
message: ''
},{
sampleGraph: '',
showKey: 'fix_other_img',
must: '0',
status: '0',
key:'fixOtherImg',
num: 15,
title: '线缆下墙照片',
message: ''
},{
sampleGraph: '',
showKey: 'total_imgs',
must: '0',
status: '0',
key:'totalImgs',
num: 15,
title: '逆变器组串接入照片',
message: ''
},{
sampleGraph: '',
showKey: 'bw_inner_img',
must: '0',
status: '0',
key:'bwInnerImg',
num: 15,
title: '并网箱内部照片',
message: ''
},{
sampleGraph: '',
showKey: 'dc_imgs',
must: '0',
status: '0',
key:'dcImgs',
num: 15,
title: '逆变器安装照片',
message: ''
},{
sampleGraph: '',
showKey: 'nbq_zb_img',
must: '0',
status: '0',
key:'nbqZbImg',
num: 15,
title: '并网箱逆变器整体照片',
message: ''
},{
sampleGraph: '',
showKey: 'dqsb_an_img_one',
must: '0',
status: '0',
key:'dqsbAnImgOne',
num: 15,
title: '逆变器注册截图照片',
message: ''
},{
sampleGraph: '',
showKey: 'nbq_plate_img',
must: '0',
status: '0',
key:'nbqPlateImg',
num: 15,
title: '逆变器铭牌照片',
message: ''
},{
sampleGraph: '',
showKey: 'zj_plate_img',
must: '0',
status: '0',
key:'zjPlateImg',
num: 15,
title: '组件铭牌照片',
message: ''
},{
sampleGraph: '',
showKey: 'open_way_voltage_imgs',
must: '0',
status: '0',
key:'openWayVoltageImgs',
num: 15,
title: '开路电压图',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img1',
must: '0',
status: '0',
key:'jdImg1',
num: 15,
title: '组件与组件之间接地照片',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img2',
must: '0',
status: '0',
key:'jdImg2',
num: 15,
title: '组件与支架接地照片',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img3',
must: '0',
status: '0',
key:'jdImg3',
num: 15,
title: '支架与接地扁铁连接照片',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img4',
must: '0',
status: '0',
key:'jdImg4',
num: 15,
title: '接地扁铁下墙照片',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img5',
must: '0',
status: '0',
key:'jdImg5',
num: 15,
title: '支架接地电阻照片',
message: ''
},{
sampleGraph: '',
showKey: 'jd_img6',
must: '0',
status: '0',
key:'jdImg6',
num: 15,
title: '电气接地电阻照片',
message: ''
},{
sampleGraph: '',
showKey: 'zj_report',
must: '0',
status: '0',
key:'zjReport',
num:1,
title: '自检记录报告',
message: ''
},{
sampleGraph: '',
showKey: 'other_files',
must: '0',
status: '0',
key:'otherFiles',
num:2,
title: '其它资料',
message: ''
},{
sampleGraph: '',
showKey: 'supplement_video_url',
must: '0',
status: '0',
key:'supplementVideoUrl',
num:5,
title: '补充视频',
message: ''
},
],
data: {
name: ""
},
tipShow: false,
tipTitle: '',//示例标题
tipMsg: '',//示例内容
sampleGraph: '', //示例图片
// 安装
photo: {
contractUrl: [], //合同
filingDocumentPhoto: [], //备案证
otherImgs1: [], //银行印鉴留样
otherImgs2: [], //法定代表人/负责人签字照
otherImgs3: [], //正脸、持笔/持印、合同签署页同框
otherImgs4: [], //签署完成照片
//工程信息
dzjc1: [], //电站基础-主屋照片
dzjc2: [], //电站基础-副屋照片
nbqPlateImg: [],//逆变器序列号照片,逆变器1铭牌照片
txPlateImg: [],//逆变器通讯棒照片,通讯棒1铭牌照
zjPlateImg: [],//组件铭牌照片
zjSnImgs:[],//组件SN
zjImg1: [],//膨胀螺栓
zjImg2: [],//基座安装固定
zjImg3: [],//底座防水
zjImg4: [],//支架基础距离房檐的距离
zjImg5: [],//支架东向西拍摄
zjImg6: [],//支架西向东拍摄---
zjImg7: [],//支架南向北拍摄---
zjImg8: [],//支架北向南拍摄---
zjImg9: [],//支架角度----
fixOtherImg: [], //线缆下墙照片
componentImg1: [],//支架节点(斜支撑)
componentImg2: [],//支架距照片(南北)
componentImg3: [],//支架距照片(东西)
componentImg4: [],//防风加固,1-3张
sizeMeasureImgs: [],//方管尺寸测量---9张
totalImgs: [],//并网箱、逆变器外部安装照片、接地引下线,逆变器、并网箱整体安装照片, 存在字段名逆变器和并网箱接地照
bwInnerImg: [],//并网箱内部整体照片
dcImgs: [], //逆变器安装照片
nbqZbImg: [],//并网箱逆变器整体照片
dqsbAnImgOne: [],//直流线缆保护
dqsbAnImgTwo: [],//直流线缆固定
zjJdImgs: [],//引下线与支架连接点、南北坡接地连接点,2张----
groundResistanceImgs: [],//接地电阻,1-2张-----
zujianJdImg: [],//组件边框接地
openWayVoltageImgs: [],//开路电压,1-6张-----
directionAirImg1: [],//东向西航拍----
directionAirImg2: [],//西向东航拍----
directionAirImg3: [],//南向北航拍----
directionAirImg4: [],//北向南航拍----
zjNearImg: [],//组件近景----
zjAngleImg: [],//组件角度----
zjItemImg: [],//檩条出组件照片----
waterChannelImg: [],//水槽照片----
mediumFixImg: [],//中压固定照片----
safetyWarningImg: [],//安全警示牌----
safetyDiscloseDocImg: [],//现场安全交底文件----
discloseDocImg: [],//现场交底照片----
recordDocImg: [],//记录表----
jdImg1: [],//组件与组件之间接地照片
jdImg2: [],//组件与支架接地照片
jdImg3: [],//支架与接地扁铁连接照片
jdImg4: [],//接地扁铁下墙照片
jdImg5: [],//支架接地电阻照片
jdImg6: [],//电气接地电阻照片
zjReport:[],//自检记录报告
otherFiles: [], //其他资料
supplementVideoUrl: [], //补充视频
kgConditionFiles: [], //安全防护措施合照照片
//广发
safetyWarningImg2:[],//施工安全图-三级安全教育
safetyWarningImg3:[],//施工安全图-开工前站班会(施工安全用品:安全帽、安全绳、反光衣、工作鞋)
safetyWarningImg:[],// 施工安全图-安全警示牌
safetyDiscloseDocImg:[],// 施工安全图-安全技术交底书
zjImg10:[],// 基础安装-螺栓孔洞防水图
zjImg11:[],// 基础安装-柱脚防水完工图
zjImg8:[],// 支架安装图-支架方阵(东向西完工照)
zjImg9:[],// 支架安装图-支架方阵(北向南完工照)
zjImg12:[],// 支架安装图-斜梁悬挑(南)
zjImg13:[],// 支架安装图-斜梁悬挑(北)
zjImg14:[],// 支架安装图-檀条悬挑(东)
zjImg15:[],// 支架安装图-檀条悬挑(西)
componentImg3:[],// 组件航拍俯视照片
componentImg4:[],// 组件安装完成VR视图
bkImg1:[],// 边框接地图-边框与边框接地
bkImg2:[],// 边框接地图-边框与支架接地
bkImg3:[],// 边框接地图-其他图片
ykImg1:[],// 压块或背压板照片
nbqZlcImg:[],// 逆变器安装图-逆变器交流侧
bwJdImg:[],// 并网箱安装图-接地情况
jdImg8:[],// 接地极图-并网箱、逆变器安装接地极
jdImg11:[],// 接地极图-支架接地电阻测量照片(远景)
jdImg9:[],// 接地极图-并网箱、逆变器安装接地电阻阻值(近景)
jdImg12:[],// 接地极图-并网箱、逆变器安装接地电阻测量照片 (远景)
jdImg10:[],// 接地极图-接地引下线警示做法
fsImg1:[],// 防水措施图-横竖向水槽
fsImg2:[],// 防水措施图-落水管走向及其固定
fsImg3:[],// 防水措施图-其他图片
waterMudClampImgs: [], //导水排泥夹照片
//华融
otherImgs5:[], //水槽细节照片
otherImgs6:[], //落水管照片
otherImgs7:[], //假梁-斜梁方向
otherImgs8:[], //并网箱逆变器防雨罩照片
},
// 并网
bwPhoto: {
yxImg: [],
gebImg: [],
},
detail: {},
formSetObj: {},//自定义字段
sampleGraphArr:[],//示例图片
filingDocumentCode: '', //项目备案代码
completeRemark: '',//完工备注
},
onLoad(options) {
this.setData({
entryId: options.projectId,
type: options.type, //0是安装,1是并网
})
wx.setNavigationBarTitle({
title: options.type == 0 ? "电站安装" : "电站并网",
})
this.entryDetail()
if (options.type == 1) {
this.getProviceCodeList()
}
},
onReady() {
const query = wx.createSelectorQuery()
query.select('#Canvas')
.fields({
node: true,
size: true
})
.exec((res) => {
const canvas = res[0].node
this.setData({
canvas,
})
})
},
/** 获取自定义字段 */
getFormSet(partner) {
getFormSet({
stage: '03', //01:信息登记,02踏勘设计,03电站安装,04电站并网
partner: partner,
}).then((res) => {
let photoTips = this.data.photoTips;
let keyList = Object.keys(res.data.columns)
photoTips.forEach((item)=>{
//示例图处理
this.data.sampleGraphArr.forEach(item2=>{
if(item2.itemCode === item.showKey){
item.sampleGraph = item2.list?item2.list:[]
}
})
keyList.forEach((item3)=>{
if(item.showKey === item3){
item.status = res.data.columns[item3].status
item.must = res.data.columns[item3].mustFillFlag
}
})
})
// console.log(111, photoTips)
this.setData({
formSetObj: res.data.columns,
photoTips
})
})
},
/** 获取示例图 */
getTipImg(typeId,callback){
findTypeReferenceListNew({
typeId: typeId,
}).then((res) => {
console.log('获取示例图', res)
if(res.data){
this.setData({
sampleGraphArr: res.data,
})
}
callback()
})
},
//示图图片放大
viewPic(e){
wx.previewImage({
current: e.currentTarget.dataset.item, // 当前显示图片的 http 链接
urls: [e.currentTarget.dataset.item] // 需要预览的图片 http 链接列表
})
},
/** 用户信息 **/
userFn(e){
wx.navigateTo({
url: '/home/pages/ownerForm/ownerForm?projectId=' + this.data.detail.entry_id + '&type=8',
})
},
/** 获取电站详情 **/
entryDetail(e) {
wx.showLoading({
title: '加载中',
})
entryDetail({
userId: wx.getStorageSync('userId'),
entryId: this.data.entryId,
}).then((res) => {
// this.getActualCapacity()
this.setData({
detail: res,
'data.projectId': res.project_id,
// 'data.projectCode': res.projectCode,
// 'data.projectName': res.projectName,
'data.powerStationCode': res.power_station_code,
'data.name': res.tenant_name,
'data.traderName': res.create_trader_name,
// 'data.traderTel': res.traderTel,
'data.phone': res.mobile,
'data.idCard': res.id_code,
'data.region': res.province + res.city + res.area + res.address,
// province: res.province,
// 'data.scheme': res.scheme_type == 1 ? "标准方案" : "组合方案",
// 'data.repaymentMethod': res.repayment_method, //划转方式
generatorNo: res.generator_no, //发电户号
filingDocumentCode: res.filing_document_code, //备案证
})
if (res.sn) {
var snList = res.sn.split(",")
this.setData({
snList: snList,
})
}
if (res.nbq_sn) {
var nbqSnList = res.nbq_sn.split(",")
this.setData({
nbqSnList: nbqSnList,
})
}
if (this.data.type == 1) { //并网
// if (res.report) {
// if (res.report.gebImg) {
// this.setData({
// [`bwPhoto.gebImg[0].name`]: res.report.gebImg,
// [`bwPhoto.gebImg[0].url`]: IMG_BASE_URL + res.report.gebImg,
// })
// }
// if (res.report.yxImg) {
// this.setData({
// [`bwPhoto.yxImg[0].name`]: res.report.yxImg,
// [`bwPhoto.yxImg[0].url`]: IMG_BASE_URL + res.report.yxImg,
// })
// }
// }
} else if (this.data.type == 0) { //完工
if (res.contract_url) {//合同
let contractUrl = res.contract_url ? res.contract_url .split(",") : [];
contractUrl.forEach(itm=>{
this.data.photo.contractUrl.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
[`photo.contractUrl`]:res.contract_url ? this.data.photo.contractUrl: [],
})
}
if (res.filing_document_photo) {//备案证
let filingDocumentPhoto = res.filing_document_photo ? res.filing_document_photo.split(",") : [];
filingDocumentPhoto.forEach(itm=>{
this.data.photo.filingDocumentPhoto.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
[`photo.filingDocumentPhoto`]:res.filing_document_photo ? this.data.photo.filingDocumentPhoto: [],
})
}
if (res.report) {
for(let i in this.data.photo){
if (res.report[i]) {
let arr = res.report[i].split(","),arr2=[];
arr.forEach(itm=>{
arr2.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
[`photo.${i}`]: arr2,
});
}
}
this.setData({
completeRemark: res.report.completeRemark, //完工备注
})
}
this.getTipImg(res.scheme_type_id,()=>{
this.getFormSet(res.management)
})
// }else{
// this.getFormSet(res.management)
// }
setTimeout(res=> {
wx.hideLoading()
this.checkCompleteEnable()
}, 500)
}
})
},
/** 获取电力公司 **/
getProviceCodeList(e) {
getProviceCodeList({}).then((res) => {
if (res.code == 200) {
var list = []
for (let i = 0; i < res.data.length; i++) {
const element = res.data[i];
list.push(element.columns)
}
setTimeout((res) => {
for (let j = 0; j < list.length; j++) {
const element = list[j];
if (element.name == this.data.province) {
this.setData({
powerCompanyName: element.power_company,
powerCompanyCode: element.code
})
}
}
}, 500)
this.setData({
powerCompanyList: list
})
}
})
},
/** 查询安装组件信息 **/
getActualCapacity(e) {
getActualCapacity({
entryId: this.data.entryId,
}).then((res) => {
const data = JSON.parse(res.data)
var list = [];
for (let i = 0; i < data.columns.nbqTotal; i++) {
var item = "";
list.push(item)
}
var npdlist = [];
for (let i = 0; i < data.columns.nbqTotal; i++) {
var item = "";
npdlist.push(item)
}
if (this.data.snList) {
for (let i = 0; i < this.data.snList.length; i++) {
for (let j = 0; j < list.length; j++) {
if (i == j) {
list[j] = this.data.snList[i];
}
}
}
}
this.setData({
nbqTotal: list
})
if (this.data.nbqSnList) {
for (let i = 0; i < this.data.nbqSnList.length; i++) {
for (let j = 0; j < npdlist.length; j++) {
if (i == j) {
npdlist[j] = this.data.nbqSnList[i];
}
}
}
}
this.setData({
nbqSnTotal: npdlist
})
this.setData({
component: data.columns
})
})
},
/** 选择电力公司 **/
bindpowerCompanyList(e) {
this.setData({
powerCompanyName: this.data.powerCompanyList[e.detail.value].power_company,
powerCompanyCode: this.data.powerCompanyList[e.detail.value].code
})
},
/** 判断方位角方向 **/
getDirection:function(rotate){
// 计算应偏移度数
let that = this;
var area = parseInt(rotate/90)
var detailArea = rotate%90
if(area==0){
that.setData({
areaTT:"西偏北",
detailAreaTT: 90-detailArea
})
}else if(area==1){
that.setData({
areaTT: "西偏南",
detailAreaTT: detailArea
})
} else if (area == 2) {
that.setData({
areaTT: "东偏南",
detailAreaTT: 90-detailArea
})
}else{
that.setData({
areaTT: "东偏北",
detailAreaTT: detailArea
})
}
return that.data.areaTT + that.data.detailAreaTT;
},
/** 上传图片之前 **/
beforeRead(e){
const { callback } = e.detail;
console.log("上传前",e);
// callback(true);
// return
if (this.data.type == 0) {
let that = this;
wx.getSystemInfoAsync({
success (rep) {
if(rep.platform == 'devtools'){
callback(true);
}else{
//指南针监听,手机拍摄
wx.onCompassChange(function(res){
console.log("指针",res);
var rotate = 360 - res.direction.toFixed(0)
let direction = that.getDirection(rotate) + '°';
that.setData({
direction: direction
});
setTimeout(()=>{
wx.stopCompass();
},100);
callback(true);
});
}
}
});
}else{
callback(true);
}
},
/** 上传图片 **/
afteruploadPhotoRead(e) {
let fileArr = [], choseType
if (Array.isArray(e.detail.file)) { //多张
fileArr = e.detail.file.map(item=>item.url);//图片集
}else{
fileArr.push(e.detail.file.url)
}
// const fileArr = e.detail.file.map(item=>item.url);//图片集
console.log('上传图片', e, fileArr)
wx.showLoading({
title: '上传中',
})
var that = this
const uploadMultiple = (index) => {
if (index >= fileArr.length) {
// 所有文件上传完毕
wx.showToast({
title: '上传完成',
icon: 'success',
duration: 2000
});
return;
}
if (Array.isArray(e.detail.file)) { //多张
choseType = e.detail.file[index].choseType || undefined;//camera相机 album相册
}else{
choseType = e.detail.file.choseType || undefined;//camera相机 album相册
}
if ((e.currentTarget.dataset.name !=='filingDocumentPhoto' && e.currentTarget.dataset.name !=='otherImgs1' && e.currentTarget.dataset.name !=='otherImgs2' && e.currentTarget.dataset.name !=='otherImgs3' && e.currentTarget.dataset.name !=='otherImgs4') && choseType == 'camera') { //加水印
this.getLocation(e)
return
}
const filePath = fileArr[index];
wx.uploadFile({
url: API_BASE_URL + 'common/weChat/uploadImage', // 你的上传API地址
filePath: filePath,
name: 'file', // 这里根据API的要求来定义
complete: function (res) {
wx.hideLoading()
if (res.statusCode == 200) {
wx.showToast({
title: '选择成功',
icon: 'none',
})
var item = {
url: "",
name: "",
}
let type = e.currentTarget.dataset.type
item.url = filePath;
item.name = res.data;
that.data.photo[type].push(item)
that.setData({
[`photo.${type}`]: that.data.photo[type]
})
that.checkCompleteEnable()
} else {
wx.showToast({
title: '选择失败',
icon: 'error'
})
}
uploadMultiple(index + 1);
}
});
};
uploadMultiple(0); //执行上传
},
/** 删除图片 **/
deleteImg(e) {
console.log("删除图片事件", e)
let index= e.detail.index;
if (e.currentTarget.dataset.typepage) {
let type = e.currentTarget.dataset.type
this.setData({
[`bwPhoto.${type}`]: []
})
} else {
let type = e.currentTarget.dataset.type
const index = (type != 'filingDocumentPhoto') ? e.detail.index : e.currentTarget.dataset.index //删除图片的下标
this.data.photo[type].splice(index, 1);
this.setData({
// [`photo.${type}`]: index > 0 ? this.data.photo[type] : [],
[`photo.${type}`]: this.data.photo[type]
})
this.checkCompleteEnable()
}
},
/** 删除文件 **/
deleteImg2(e) {
// console.log("删除事件2", e)
let index= e.currentTarget.dataset.index;
let name= e.currentTarget.dataset.name;
this.data.photo[name].splice(index, 1);
this.setData({
[`photo.${name}`]: this.data.photo[name]
// otherFiles: index > -1 ? this.data.otherFiles : []
})
this.checkCompleteEnable()
},
/** 提交验收报告 **/
submitFrom(e) {
var data;
wx.showLoading({
title: "提交中"
})
if (this.data.type == 0) { //完工
//用户类型是单位
if(this.data.detail.tenant_type=='2'){
if (this.data.filingDocumentCode ==null || this.data.filingDocumentCode =='') {
wx.showToast({
title: '请输入项目备案代码',
icon: 'none'
})
return
}
if (!this.data.photo.filingDocumentPhoto.length > 0) {
wx.showToast({
title: '请上传备案证',
icon: 'none'
})
return
}else if (!this.data.photo.otherImgs1.length > 0 && this.data.formSetObj.other_imgs1.mustFillFlag =='1') {
wx.showToast({
title: '请上传银行印鉴留样',
icon: 'none'
})
return
}else if(!this.data.photo.otherImgs2.length > 0 && this.data.formSetObj.other_imgs2.mustFillFlag =='1') {
wx.showToast({
title: '请上传签约现场照片-法定代表人/负责人签字照',
icon: 'none'
})
return
}else if(!this.data.photo.otherImgs3.length > 0 && this.data.formSetObj.other_imgs3.mustFillFlag =='1') {
wx.showToast({
title: '请上传签约现场照片-正脸、持笔/持印、合同签署页同框',
icon: 'none'
})
return
}else if(!this.data.photo.otherImgs4.length > 0 && this.data.formSetObj.other_imgs4.mustFillFlag =='1') {
wx.showToast({
title: '请上传签署完成照片',
icon: 'none'
})
return
}else if(this.data.completeRemark == '' && this.data.formSetObj.complete_remark.mustFillFlag =='1') {
wx.showToast({
title: '完工备注不能为空',
icon: 'none'
})
return
}
}
data = {
entryId: this.data.entryId,
filingDocumentCode: this.data.filingDocumentCode,
completeRemark: this.data.completeRemark,
// otherFiles: this.data.otherFiles.join(',')
}
//图片
for(let i in this.data.photo){
data[i] = this.data.photo[i].length>0 ? this.data.photo[i].map(itm=>itm.name).join(",") : "";
}
console.log("提交",data);
// return;
install({
userId: wx.getStorageSync('userId'),
addReportReq: data
}).then((res) => {
wx.hideLoading()
if (res.code == 200) {
wx.showToast({
title: '完工成功',
icon: 'none',
success: function () {
setTimeout(function () {
wx.navigateBack()
}, 1500)
}
})
} else {
wx.showToast({
title: res.errMsg || res.msg,
icon: 'none'
})
}
})
}
},
/** 暂存 **/
cacheFrom(e) {
wx.showLoading({
title: '暂存中',
})
var data;
data = {
entryId: this.data.entryId,
filingDocumentCode: this.data.filingDocumentCode,
completeRemark: this.data.completeRemark,
// otherFiles: this.data.otherFiles.join(',')
}
//图片
for(let i in this.data.photo){
data[i] = this.data.photo[i].length>0 ? this.data.photo[i].map(itm=>itm.name).join(",") : "";
}
installZc({
userId: wx.getStorageSync('userId'),
addReportReq: data
}).then((res) => {
wx.hideLoading()
if (res.code == 200) {
wx.showToast({
title: '暂存成功',
icon: 'none',
success: function () {
setTimeout(function () {
wx.navigateBack()
}, 1500)
}
})
} else {
wx.showToast({
title: res.errMsg || res.msg,
icon: 'none'
})
}
})
},
/** 查看注意方案 **/
viewNote(e) {
let title = e.currentTarget.dataset.tit;
let message = e.currentTarget.dataset.msg;
Dialog.alert({
title: title,
message: message,
theme: 'round-button',
}).then(() => { });
},
/** 输入sn码 **/
snEntry(e) {
this.setData({
[`snList[${e.currentTarget.dataset.index}]`]: e.detail.value,
})
this.checkCompleteEnable()
},
/** 逆变器输入sn码 **/
nbqSnEntry(e) {
this.setData({
[`nbqSnList[${e.currentTarget.dataset.index}]`]: e.detail.value,
})
this.checkCompleteEnable()
},
/** 扫码 **/
scanCode(e) {
const type = e.currentTarget.dataset.type;
const index = e.currentTarget.dataset.index;
const that = this
wx.scanCode({
onlyFromCamera: true,
success(res) {
console.log("扫码结果", res)
if (type == 0) {
that.setData({
[`snList[${index}]`]: res.result,
[`nbqTotal[${index}]`]: res.result,
})
} else if (type == 1) {
that.setData({
[`nbqSnList[${index}]`]: res.result,
[`nbqSnTotal[${index}]`]: res.result,
})
}
that.checkCompleteEnable()
},
fail(res) {
wx.showToast({
title: '扫码失败',
icon: 'none'
})
}
})
},
/** 校验完工必填项是否选择或填写完毕 **/
checkCompleteEnable(e) {
if (this.data.snList && this.data.snList.length > 0) {
for (let i = 0; i < this.data.snList.length; i++) {
const element = this.data.snList[i];
if (!element) {
this.setData({
completeEnable: false
})
return
}
}
}
if (this.data.nbqSnList && this.data.nbqSnList.length > 0) {
for (let i = 0; i < this.data.nbqSnList.length; i++) {
const element = this.data.nbqSnList[i];
if (!element) {
this.setData({
completeEnable: false
})
return
}
}
}
try{
for (let i in this.data.photo) {
this.data.photoTips.forEach(item=>{
if((i == item.key) && (item.must == '1')){
if (this.data.photo[i].length == 0 ) {
// console.log(12121, item.key, i)
this.setData({
completeEnable: false
})
throw Error()
}
}
})
}
// if(this.data.formSetObj.other_files.status=='1' && this.data.formSetObj.other_files.mustFillFlag=='1'){
// if(this.data.otherFiles.length == 0){
// this.setData({
// completeEnable: false
// })
// return
// }
// }
this.setData({
completeEnable: true
})
}catch(e) {
console.log(e)
}
},
/** 获取用户当前地理位置后为照片添加水印 **/
getLocation(e) {
if (this.data.customerAddress) { //有地址直接绘制图片
this.chooseImages(e)
return
}
utilGetLocation.getLocationAddress().then((res) => {
res.res.data = res.res.data.slice(res.res.data.lastIndexOf('省') + 1)
this.setData({
customerAddress: res.res.data,
canvasLongitude: res.resLocation.longitude,
canvasLatitude: res.resLocation.latitude,
});
//获取小程序二维码
let lonLat = res.resLocation.longitude + ',' + res.resLocation.latitude;
createQrcode({
content:lonLat
}).then(ret=>{
// let codeImg ="data:image/png;base64," + ret;
let codeImg =IMG_BASE_URL + ret;
this.setData({
imageCodeImg:codeImg
});
// console.log("codeImg",codeImg);
this.chooseImages(e)
});
})
},
/**
* @param {*} e 图片携带信息
* @param {*} customerAddress 实时地理位置信息
* @param {*} canvasLongitude 实时地理位置经度
* @param {*} canvasLatitude 实时地理位置纬度
*/
async chooseImages(e) {
const photoName = e.currentTarget.dataset.type; //图片名称
const tempFilePath = e.detail.file[0].url //图片路径
const canvasWidth = wx.getSystemInfoSync().screenWidth;
// 获取图片信息
await wx.getImageInfo({
src: tempFilePath,
}).then(async res => {
let watermarkScale = res.width / canvasWidth;
this.setData({
canvasHeight: Math.round(res.height / watermarkScale),
canvasWidth: canvasWidth,
});
await utilAddWatermark.addWatermark(tempFilePath, photoName, this.data).then((res) => {
this.data.photo[photoName].push(res)
this.setData({
[`photo.${photoName}`]: this.data.photo[photoName]
})
this.checkCompleteEnable()
})
})
},
/** 购售电地址是否一致 **/
radioChangeAddress(e) {
this.setData({
changeAddressType: e.detail.value
})
},
/** 打开省市区弹框 **/
bindRegionChange(e) {
this.setData({
showRegion: true
})
},
/** 选择的地址 **/
chooseRegion(e) {
this.setData({
provinceName: e.detail.provinceName,
cityName: e.detail.cityName,
areaName: e.detail.areaName,
address: ""
})
},
/** 拨打业主联系电话 **/
phoneFn(e) {
const phone = e.currentTarget.dataset.phone;
if (!phone) {
wx.showToast({
title: '暂无联系方式',
icon: 'none'
})
return
}
wx.makePhoneCall({
phoneNumber: phone,
})
},
/** 填充所有图片 **/
imageAll(e) {
var that = this
wx.showModal({
title: '提示',
content: '确定选取图片后填充完工所有图片?',
complete: (res) => {
if (res.confirm) {
wx.chooseMedia({
count: 1,
mediaType: ['image'],
success(resImage) {
wx.showLoading({
title: '选择中',
})
wx.uploadFile({
url: API_BASE_URL + 'common/weChat/uploadImage',
filePath: resImage.tempFiles[0].tempFilePath,
name: 'file',
complete: function (res) {
wx.hideLoading()
if (res.statusCode == 200) {
for (let i in that.data.photo) {
let arr=[];
arr.push({
name:res.data,
url:IMG_BASE_URL + res.data
});
that.setData({
[`photo.${i}`]: arr,
})
}
wx.showToast({
title: '填充成功',
icon: 'none'
})
that.checkCompleteEnable()
} else {
wx.showToast({
title: '填充失败',
icon: 'none'
})
}
}
})
}
})
}
}
})
},
/** 文件或图片上传选择-对话框 **/
selectUplosd(e){
var that = this;
let name = e.currentTarget.dataset.name;
let maxcount = e.currentTarget.dataset.maxcount;
wx.showActionSheet({
itemList: ['文件', '图片'],
success: function (res) {
if (!res.cancel) {
if (res.tapIndex == 0) {//文件
that.upload(e, name);
} else if (res.tapIndex == 1) {//图片
wx.chooseMedia({
count: maxcount - that.data.photo[name].length,
mediaType: ['image'],
sourceType: ['album'],
success: function (rep) {
if (Array.isArray(rep.tempFiles)) { //多张
var count = 0;
that.afteruploadPhotoReadFile(e, rep.tempFiles, count)
return
}
wx.showLoading({
title: '选择中',
})
wx.uploadFile({
url: API_BASE_URL + 'common/weChat/uploadImage',
filePath: rep.tempFiles[0].tempFilePath,
name: 'file',
complete: function (res) {
wx.hideLoading()
if (res.statusCode == 200) {
wx.showToast({
title: '选择成功',
icon: 'none',
})
if(name){
var item = {
url: "",
name: "",
}
item.url = rep.tempFiles[0].tempFilePath;
item.name = res.data;
that.data.photo[name].push(item)
that.setData({
[`photo.${name}`]: that.data.photo[name]
})
}
that.checkCompleteEnable()
} else {
wx.showToast({
title: '选择失败',
icon: 'error'
})
}
}
})
},
fail: function(){},
});
}
}
}
});
},
/** 上传pdf或图片 **/
upload(e,name) {
var that = this;
let maxcount = e.currentTarget.dataset.maxcount;
wx.chooseMessageFile({
count: maxcount - this.data.photo[name].length,
type: 'all',
success(res) {
if (Array.isArray(res.tempFiles)) { //多张
var count = 0;
that.afteruploadPhotoReadFile(e, res.tempFiles, count, 'file')
return
}
//获取文件后缀
let suffix = res.tempFiles[0].path.substring(res.tempFiles[0].path.lastIndexOf('.') + 1)
if (suffix.search(/jpg|png|jpeg|pdf/) == -1) {
wx.showToast({
title: '只能上传jpg、png、jpeg、pdf文件',
icon: 'none'
})
return
} else {
wx.showLoading({
title: '选择中',
})
wx.uploadFile({
url: API_BASE_URL + 'common/uploadFile_Name?fileName='+res.tempFiles[0].name,
filePath: res.tempFiles[0].path,
name: 'file',
complete: function (res) {
wx.hideLoading()
if (res.statusCode == 200) {
wx.showToast({
title: '选择成功',
icon: 'none'
})
if(name){
that.data.photo[name].push({
name: JSON.parse(res.data).path,
url: IMG_BASE_URL + JSON.parse(res.data).path
});
that.setData({
[`photo.${name}`]: that.data.photo[name]
})
}else{
// otherFiles.push(JSON.parse(res.data).path)
// that.setData({
// otherFiles
// })
// that.checkCompleteEnable()
}
} else {
wx.showToast({
title: '选择失败',
icon: 'none'
})
}
}
})
}
}
})
},
/** 文件上传多张递归 **/
afteruploadPhotoReadFile(e, file, count, type) {
let ob = {
name: '',
url: '',
}
const name = e.currentTarget.dataset.name
wx.showLoading({
title: '加载第' + (count + 1) + '张照片中',
mask: true,
})
const element = file[count];
var that = this;
var url = ''
if(type =='file'){
//获取文件后缀
let suffix = element.path.substring(element.path.lastIndexOf('.') + 1)
if (suffix.search(/jpg|png|jpeg|pdf/) == -1) {
wx.showToast({
title: '只能上传jpg、png、jpeg、pdf文件',
icon: 'none'
})
return
}
url = API_BASE_URL + 'common/uploadFile_Name?fileName='+ element.name
}else{
url = API_BASE_URL + 'common/weChat/uploadImage'
}
wx.uploadFile({
url: url,
filePath: type =='file'?element.path:element.tempFilePath,
name: 'file',
success(res) {
wx.hideLoading()
if (res.statusCode == 200) {
count = count + 1;
ob.name = type =='file'?JSON.parse(res.data).path: res.data,
ob.url = type =='file'?JSON.parse(res.data).path:element.tempFilePath
that.data.photo[name].push(ob);
that.setData({
[`photo.${name}`]: that.data.photo[name]
})
if (count == file.length) {
wx.showToast({
title: '选择成功',
icon: 'none'
})
that.checkCompleteEnable()
} else {
that.afteruploadPhotoReadFile(e, file, count, type)
}
} else {
wx.showToast({
title: '选择失败',
icon: 'error'
})
}
}
})
},
//打开pdf文件或者大图查看图片
openDocument(res) {
let path = res.currentTarget.dataset.path
if (path) {
let suffix = path.substring(path.lastIndexOf('.') + 1) //获取文件后缀
if (suffix == 'pdf') {
wx.showLoading({
title: '加载中',
})
wx.downloadFile({
url: IMG_BASE_URL + path,
complete: function (res) {
wx.hideLoading()
const filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
showMenu: true,
success: function (res) {}
})
}
})
} else {
wx.previewImage({
urls: [IMG_BASE_URL + path] // 需要预览的图片http链接列表
})
}
}
},
})