master
cai 1 week ago
commit a7c88e15f3

14
.gitignore vendored

@ -0,0 +1,14 @@
# Windows
[Dd]esktop.ini
Thumbs.db
$RECYCLE.BIN/
# macOS
.DS_Store
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
# Node.js
node_modules/

@ -0,0 +1,36 @@
# 阳光系统-小程序
#### Description
阳光新系统的小程序
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

@ -0,0 +1,132 @@
# 阳光系统-小程序
#### 介绍
阳光新系统的小程序
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
### 登录角色判断userType
userType TRADER:代理商TRADER_EMP:代理商员工PLATFORM_EMP平台暂不用SYS_EMP:系统工程师。PRO_EMP:项目工程师)
### 首页菜单权限字段
* "新增信息登记"按钮 HYXCX_XZXXDJ_B
* 信息采集 HYXCX_XXCJ_T
* 1.信息登记 HYXCX_XXDJ_T
* 2.信息授权 HYXCX_XXSQ_T
* 3.开二类卡 HYXCX_KELK_T
* 4.农户合同 HYXCX_NHHT_T
* 勘测设计 HYXCX_KCSJ_T
* 1.电站初勘 HYXCX_DZCK_T
* 2.设计审核 HYXCX_SJSH_T
* 安装阶段 HYXCX_AZJD_T
* 1.物料下单 HYXCX_WLXD_T
* 2.电站安装 HYXCX_DZAZ_T
* 3.安装验收 HYXCX_AZYS_T
* 并网阶段 HYXCX_BWJD_T
* 1.电站并网 HYXCX_DZBW_T
* 2.合同签署 HYXCX_HTQS_T
* 3.并网验收 HYXCX_BWYS_T
* 4.项目存档 HYXCX_XMCD_T
* 5.项目查询 HYXCX_XMCX_T
* 6.电站整改 HYXCX_DZZG_T
### 按钮权限字段
1. 信息登记:
查看XXDJ_VIEW_B
<!-- 新增XXDJ_ADD_B
编辑XXDJ_EDIT_B -->
删除XXDJ_DELETE_B
预审查询XXDJ_YSCX_B
2. 信息授权:
查看XXSQ_VIEW_B
授权XXSQ_AUTH_B
授权链接XXSQ_AUTHLINK_B
查看XXSQ_AUTHLINK_LOOK_B (查看授权书)
3. 开二类卡:
查看KELK_VIEW_B
开卡KELK_ADD_B
重新开卡KELK_READD_B
卡信息KELK_INFO_B
4. 电站初勘:
查看DZCK_VIEW_B
勘测DZCK_ADD_B
修改业主信息DZCK_EDIT_B
5. 农户合同:
查看NHHT_VIEW_B
签约NHHT_QY_B
共签NHHT_GQ_B
重签NHHT_CQ_B
NHHT_SCLJ_B 生成链接
NHHT_YL_B 预览
NHHT_HTLZ_B 合同落章
NHHT_ZF_B 作废
6. 设计审核:
查看SJSH_VIEW_B
7. 物料下单:
查看WLXD_VIEW_B
下单WLXD_XD_B
8. 电站安装:
查看DZAZ_VIEW_B
安装DZAZ_AZ_B
完工DZAZ_WG_B
9. 安装验收:
查看AZYS_VIEW_B
10. 电站并网:
查看DZBW_VIEW_B
并网DZBW_BW_B
11. 合同签署:
查看HTQS_VIEW_B
签署HTQS_SIGN_B
12. 并网验收:
查看BWYS_VIEW_B
13. 项目存档:
查看XMCD_VIEW_B
14. 项目查询:
查看XMCX_VIEW_B
15. 电站整改:
查看DZZG_VIEW_B
发起DZZG_ADD_B

@ -0,0 +1,947 @@
/**
* 请求api
* @author
*/
/**
* 注意
* 注意
* 注意
* 注意
* 注意
* 注意
* 注意
*
*
* 发布正式版时将DEV设置为false
*
*
*/
const DEV = false
// const DEV = true
//打印日志开关
const DEBUG = false;
// const DEBUG = true;
// const API_BASE_URL = 'https://www.xingyuancrm.com/redsun-api/miniapp/cloud/a/'; //生产环境
// const API_BASE_URL = 'http://192.168.2.44:8083/a/'; //冬青
// const API_BASE_URL = 'http://192.168.2.8:8080/cloud_war_exploded/a/'; //洪雪
// const API_BASE_URL = 'http://116.162.216.30:8082/cloud/a/'; //李宗平
// const API_BASE_URL = 'http://192.168.2.185:8080/nenghui/a/'; //贺
// const API_BASE_URL = 'http://192.168.2.28:8080/nenghui/a/'; //王文军
// const API_BASE_URL = 'http://192.168.2.244:8080/nenghui/a/'; //倪
// const API_BASE_URL = 'http://192.168.2.99:7380/nenghui/a/'; //黄赵
// const API_BASE_URL = 'http://192.168.2.187:8088/nenghui/a/'; //王楠
// const API_BASE_URL = 'http://192.168.2.223:8080/cloud_war_exploded/a/'; //程礼坤
// const API_MONIT_URL = 'http://192.168.2.8:8099/'; //洪雪-监控接口
// const API_MONIT_URL = 'http://192.168.2.181:8099/'; //李宗平-监控接口
//测试环境
const API_BASE_URL = 'http://47.100.121.41:8089/nenghui_uat/a/'; //接口
const IMG_BASE_URL = 'https://nhet-test.oss-cn-shanghai.aliyuncs.com/' //测试环境和生产环境 图片前缀
// const API_MONIT_URL = 'https://www.nhhyy.com/nenghui-uat-api/'; //监控接口
//线上
// const API_BASE_URL = 'https://www.nhhyy.com/nhet/a/';
// const IMG_BASE_URL = 'https://nhet.oss-cn-shanghai.aliyuncs.com/' //线上 图片前缀
const API_MONIT_URL = 'https://www.nhhyy.com/monitor-api/'; //监控接口
// const IMG_BASE_URL = 'https://entry-imgs.oss-cn-beijing.aliyuncs.com/' //本地
const WU_TU_PIAN_URL = "https://obs-hncs2.cucloud.cn/entry-imgs/prohibit_delete/wutupian.png"; //无图片显示
const UP_MONIT_IMG = API_MONIT_URL + 'blade-resource/oss/endpoint/put-file?code=aliyun'; //监控上传图片路径,每个平台的code可能不同
const IMG_MONIT_URL = ''; //监控图片,暂时不用
/**
*
* base请求
* @param {String} host 域名
* @param {String} url 请求路径
* @param {String} method 请求方法 GET/POST
* @param {Object} data 请求参数 {"key":"value"}
* @param {String} contentType
*
*/
var requestWithHost = function requestWithHost(host, url, method, data, contentType, consoleText) {
var _url = host.length > 0 ? host : API_BASE_URL + url;
var _header = {
'Content-Type': contentType === '1' ? 'application/json' : 'application/x-www-form-urlencoded',
}
return new Promise(function (resolve, reject) {
var result;
var bool;
wx.request({
url: _url,
method: method,
data: data,
header: _header,
success: (res) => {
if (DEBUG) {
bool = true
result = res.data
}
resolve(res.data)
},
fail: (res) => {
if (DEBUG) {
bool = false
result = res
}
resolve(res)
},
complete: () => {
if (DEBUG) {
console.log('\n')
console.log('start ---------------------------------------------------------------------- >>')
if (method.toUpperCase() == "GET") {
var params = ''
if (data) {
Object.keys(data).forEach(key => {
params = params ? `${params}&${key}=${data[key]}` : `?${key}=${data[key]}`
});
}
console.log(`请求URL: ${method.toUpperCase()} ${_url + params}`)
} else {
console.log(`请求URL: ${method.toUpperCase()} ${_url} \n请求参数:\n${JSON.stringify(data,function (key,value) {
if (value === undefined) {
return 'undefined';
} else if (value === null) {
return 'null'
}
return value;
},4)}`)
}
console.log(bool ? '回调参数:success' : '回调参数:fail', result)
console.log('<< ---------------------------------------------------------------------- end')
console.log('\n')
}
}
})
})
}
/**
* host:API_BASE_URL 的请求
* @param {String} url 请求路径
* @param {String} method 请求方法 GET/POST
* @param {Object} data 请求参数 {"key":"value"}
*/
var request = function request(url, method, data, contentType, consoleText) {
return requestWithHost('', url, method, data, contentType, consoleText)
}
module.exports = {
API_BASE_URL,
IMG_BASE_URL,
WU_TU_PIAN_URL,
DEV,
API_MONIT_URL,
IMG_MONIT_URL,
UP_MONIT_IMG,
/**
*
* post请求接口示例
*
* @param {*} data
*/
postRequest: function postRequest(data) {
return request('/api/postRequest', 'post', data, "1");
},
/**
*
* get请求接口示例
*
* @param {*} data
*/
getRequest: function getRequest(data) {
return request('/api/getRequest', 'get', data);
},
/**
*
* 获取电站列表
*
* @param {*} data
*/
ajaxForWaitOrder: function ajaxForWaitOrder(data) {
return request('main/projectManage/ajaxForWaitOrder', 'get', data);
},
/**
*
* 获取农户合同列表
*
* @param {*} data
*/
ajaxForWaitOrder2: function ajaxForWaitOrder2(data) {
return request('main/projectManage/contractListDate', 'get', data);
},
/**
*
* 获取电站整改数据
*
* @param {*} data
*/
findRetrialPage: function findRetrialPage(data) {
return request('main/projectManage/findRetrialPage', 'get', data);
},
/**
*
* 获取产品编号
*
* @param {*} data
*/
projectList: function projectList(data) {
return request('main/projectManage/projectList', 'get', data);
},
/**
*
* 获取自定义字段
*
* @param {*} data
*/
getFormSet: function getFormSet(data) {
return request('main/projectManage/getFormSet', 'get', data);
},
/**
*
* 电站安装示例图
*
* @param {*} data
*/
findTypeReferenceList: function findTypeReferenceList(data) {
return request('main/projectManage/findTypeReferenceList', 'get', data);
},
/**
*
* 电站安装示例图2
*
* @param {*} data
*/
findTypeReferenceListNew: function findTypeReferenceListNew(data) {
return request('main/projectManage/findTypeReferenceListNew', 'get', data);
},
/**
*
* 获取组件逆变器并网箱列表
*
* @param {*} data
*/
getElectricPlanAll: function getElectricPlanAll(data) {
return request('main/projectManage/getElectricPlanAll', 'get', data);
},
/**
*
* 获取方案类型和名称
*
* @param {*} data
*/
findAllPlan: function findAllPlan(data) {
return request('main/projectManage/findAllPlan', 'get', data);
},
login(data) {
return request('main/login/toLogin', 'get', data);
},
sendMsg(data) {
return request('main/customer/sendMsg', 'get', data);
},
checkConfirmCode(data) {
return request('main/customer/checkConfirmCode', 'get', data);
},
/**
*
* 客户管理
*
* @param {*} data
*/
saveOrEditCustomerEntry: function saveOrEditCustomerEntry(data) {
return request('main/projectManage/saveOrEditCustomerEntry?userId=' + data.userId, 'post', data.CustomerEntry, "1");
},
/**
*
* 信息校验
*
* @param {*} data
*/
lookCreditResult: function lookCreditResult(data) {
return request('main/projectManage/lookCreditResult', 'get', data);
},
/**
*
* 获取电站详细
*
* @param {*} data
*/
entryDetail: function entryDetail(data) {
return request('main/projectManage/entryDetail', 'get', data);
},
/**
*
* 获取首页统计
*
* @param {*} data
*/
getHomeStatistics: function getHomeStatistics(data) {
return request('main/projectManage/getHomeStatistics', 'get', data);
},
/**
*
* 提交完工
*
* @param {*} data
*/
install: function install(data) {
return request('main/projectManage/install?userId=' + data.userId, 'post', data.addReportReq, "1");
},
/**
*
* 提交完工
*
* @param {*} data
*/
installZc: function install(data) {
return request('main/projectManage/installZc?userId=' + data.userId, 'post', data.addReportReq, "1");
},
/**
*
* 提交并网
*
* @param {*} data
*/
accept: function accept(data) {
return request('main/projectManage/accept?userId=' + data.userId, 'post', data.addReportReq, "1");
},
/**
*
* 使用物料
*
* @param {*} data
*/
usedMaterial: function usedMaterial(data) {
return request('main/projectManage/usedMaterial', 'get', data);
},
/**
*
* 获取使用物料列表
*
* @param {*} data
*/
getUsedMaterialInfo: function getUsedMaterialInfo(data) {
return request('main/projectManage/getUsedMaterialInfo', 'get', data);
},
/**
*
* 删除物料
*
* @param {*} data
*/
deleteUsedRocerd: function deleteUsedRocerd(data) {
return request('main/projectManage/deleteUsedRecord', 'get', data);
},
/**
*
* 查询安装组件信息
*
* @param {*} data
*/
getActualCapacity: function getActualCapacity(data) {
return request('main/projectManage/getActualCapacity', 'get', data);
},
/**
*
* 审核不通过
*
* @param {*} data
*/
appletsFailed: function appletsFailed(data) {
return request('main/projectManage/appletsFailed', 'get', data);
},
/**
*
* 审核通过
*
* @param {*} data
*/
appletsToExamine: function appletsToExamine(data) {
return request('main/projectManage/appletsToExamine?userId=' + data.userId, 'post', data.CustomerEntry, "1");
},
/**
*
* 获取变更类型
*
* @param {*} data
*/
getRectificationList: function getRectificationList(data) {
return request('main/projectManage/getRectificationList', 'get', data);
},
/**
*
* 审核电站整改
*
* @param {*} data
*/
rectificationAudit: function rectificationAudit(data) {
return request('main/projectManage/rectificationAudit', 'get', data);
},
/**
*
* 邀请签约
*
* @param {*} data
*/
askToContract: function askToContract(data) {
return request('main/projectManage/askToContract', 'get', data);
},
/**
*
* 根据经纬度 获取 地址
*
* @param {*} data
*/
getAddressByLonLat: function getAddressByLonLat(data) {
return request('main/address/getAddressByLonLat', 'get', data);
},
/**
*
* 根据地址 获取 经纬度
*
* @param {*} data
*/
getAddressLonLat: function getAddressLonLat(data) {
return request('main/address/getAddressLonLat', 'get', data);
},
/**
*
* 获取仓库信息
*
* @param {*} data
*/
getWarehouseList: function getWarehouseList(data) {
return request('main/projectManage/getWarehouseList', 'get', data);
},
/**
*
* 保存仓库信息
*
* @param {*} data
*/
saveWarehouse: function saveWarehouse(data) {
return request('main/projectManage/saveWarehouse', 'get', data);
},
/**
*
* 获取代理商下员工人数
*
* @param {*} data
*/
etEmpCountByRole: function etEmpCountByRole(data) {
return request('main/projectManage/getEmpCountByRole', 'get', data);
},
/**
*
* 开卡
*
* @param {*} data
*/
bankCardPage: function bankCardPage(data) {
return request('main/yueXiuBankCard/bankCardPage', 'get', data);
},
/**
*
* 签约或重新签约
*
* @param {*} data
*/
toContractPage: function toContractPage(data) {
return request('main/yueXiuContract/toContractPage', 'get', data);
},
/**
*
* 华融签约或重新签约
*
* @param {*} data
*/
huaRongContractPage: function toContractPage(data) {
return request('main/HuaRongContract/getContractSignUrl', 'get', data);
},
/** 上传合同 **/
submitContract: function submitContract(data) {
return request('main/HuaRongContract/submitContract', 'post', data, "1");
},
/** 生成合同 **/
getSignContractUrl: function getSignContractUrl(data) {
return request('main/GFContract/getSignContractUrl', 'get', data);
},
/** 合同落章 **/
doSealContract: function doSealContract(data) {
return request('main/GFContract/doSealContract', 'get', data);
},
/**
*
* 授权
*
* @param {*} data
*/
toAuthContrac: function toAuthContrac(data) {
return request('main/EsignAuth/toAuthContract', 'get', data);
},
/**
*
* 查看
*
* @param {*} data
*/
getContractUrlToLook: function getContractUrlToLook(data) {
return request('main/yueXiuContract/getContractUrlToLook', 'get', data);
},
/** 华融合同查看 **/
getContractUrlToLookHr: function getContractUrlToLook(data) {
return request('main/HuaRongContract/getContractUrl', 'get', data);
},
/**
*
* 删除电站
*
* @param {*} data
*/
deleteCustomerEntry: function deleteCustomerEntry(data) {
return request('main/projectManage/deleteCustomerEntry', 'get', data);
},
/**
*
* 获取所有省
*
* @param {*} data
*/
getProvinceList: function getProvinceList(data) {
return request('main/redirect/getProvinceList', 'get', data);
},
/**
*
* 根据省查询市
*
* @param {*} data
*/
getCitysByProId: function getCitysByProId(data) {
return request('main/redirect/getCitysByProId', 'get', data);
},
/**
*
* 根据市查询区
*
* @param {*} data
*/
getAreaByCityId: function getAreaByCityId(data) {
return request('main/redirect/getAreaByCityId', 'get', data);
},
/**
*
* 获取并网箱和支架列表
* @param {*} data
*/
getMateriallist: function getMateriallist(data) {
return request('main/projectManage/getMateriallist', 'get', data);
},
/**
*
* 使用并网箱和支架
* @param {*} data
*/
usedMaterialOther: function usedMaterialOther(data) {
return request('main/projectManage/usedMaterialOther', 'post', data, "1");
},
/**
*
* 获取签约状态
* @param {*} data
*/
ecordClickSign: function ecordClickSign(data) {
return request('main/yueXiuContract/ecordClickSign', 'get', data);
},
/**
*
* 获取电力公司
* @param {*} data
*/
getProviceCodeList: function getProviceCodeList(data) {
return request('main/order/getProviceCodeList', 'get', data);
},
/**
*
* 获取联行号列表数据
* @param {*} data
*/
findLinkNumberList: function findLinkNumberList(data) {
return request('main/projectManage/findLinkNumberList', 'get', data);
},
/**
*
* 获取客户管理预审查询结果
* @param {*} data
*/
findResult: function findResult(data) {
// return request('/main/projectManage/findResult', 'get', data);
return request('/main/projectManage/findPreauditStatus', 'get', data);
},
/**
*
* 修改业主信息接口
* @param {*} data
*/
editCustomerEntryBy: function editCustomerEntryBy(data) {
return request('/main/projectManage/editCustomerEntryBy?userId=' + data.userId, 'post', data.CustomerEntry,"1");
},
//并网验收通过或不通过
twoMergeAcceptRefuse: function twoMergeAcceptRefuse(data) {
return request('/main/projectManage/twoMergeAcceptRefuse', 'get', data);
},
//安装验收通过或不通过
toNetAccept: function toNetAccept(data) {
return request('/main/projectManage/toNetAccept', 'get', data);
},
//二类卡信息
bankCardDetail: function bankCardDetail(data) {
return request('/main/yueXiuBankCard/bankCardDetail', 'get', data);
},
//获取信息授权签约链接
getEsignUrl: function getEsignUrl(data) {
return request('/main/EsignAuth/getEsignUrl', 'get', data);
},
//获取小程序二维码
createQrcode: function createQrcode(data) {
return request('/main/projectManage/createQrcode', 'get', data);
},
//校验代理商员工角色登录权限字段接口
checkTraderEmpAuth: function checkTraderEmpAuth(data) {
return request('/main/projectManage/checkTraderEmpAuth', 'get', data);
},
//修改手机号,并重新发起授权合同
resetMobileVsAuthPc: function resetMobileVsAuthPc(data) {
return request('/main/EsignAuth/resetMobileVsAuth', 'get', data);
},
//列表tab统计
customerManagementStatic: function customerManagementStatic(data) {
return request('/main/projectManage/customerManagementStatic', 'get', data);
},
//查看信息授权书
lookAuthBook: function lookAuthBook(data) {
return request('/main/projectManage/lookAuthBook', 'get', data);
},
//档案表单保存接口
saveArchives: function saveArchives(data) {
return request('/main/projectManage/saveArchives?userId=' + data.userId, 'post', data.CustomerEntry,"1");
},
//档案审核
auditArchives: function auditArchives(data) {
return request('/main/projectManage/auditArchives', 'post', data,'1');
},
//派工
dispatch: function dispatch(data) {
return request('/main/projectManage/dispatch', 'post', data,'1');
},
//经销商的已启用员工列表
selectDispatchEngineer: function selectDispatchEngineer(data) {
return request('/main/projectManage/selectDispatchEngineer', 'get', data);
},
//逆变器添加编码
saveMaterialSN: function saveMaterialSN(data) {
return request('/main/projectManage/saveMaterialSN', 'post', data, '1');
},
//获取客户列表
getTenantList: function getTenantList(data) {
return request('/main/projectManage/getTenantList', 'get', data);
},
//客户详情
getTenantDetail: function getTenantDetail(data) {
return request('/main/projectManage/getTenantDetail', 'get', data);
},
//近三天发电量
getDataInThreeDays: function getDataInThreeDays(data) {
return request('/main/projectManage/getDataInThreeDays', 'get', data);
},
//待办
getNeedToDealList: function getNeedToDealList(data) {
return request('/main/itemManagement/needToDeal/getNeedToDealList', 'get', data);
},
//投资方
getCapital: function getCapital(data) {
return request('/main/projectManage/getCapital', 'get', data);
},
//接入逆变器--接入
insertInterFace: function insertInterFace(data) {
return request('/main/projectManage/insertInterFace', 'get', data);
},
//开二类卡--销卡
cancelBankCard: function cancelBankCard(data) {
return request('/main/yueXiuBankCard/cancelBankCard', 'get', data);
},
//项目信息--所属项目公司
getCompany: function getCompany(data) {
return request('main/projectManage/getCompany', 'get',data);
},
//代理商列表
getTraderList: function getTraderList(data) {
return request('main/projectManage/getTraderList', 'get',data);
},
//根据身份证号判断客户是否已存在
isByIdCode: function isByIdCode(data) {
return request('main/projectManage/isByIdCode', 'get',data);
},
//国网授权--导入接口 传值powerGenerationNo发电户号
addUserInfo: function addUserInfo(data) {
return request('main/stategrid/addUserInfo', 'get',data);
},
//审批记录
getOptList: function getOptList(data) {
return request('main/projectManage/getOptList', 'get',data);
},
//勘测-提交设计
surveyToDesign: function surveyToDesign(data) {
return request('main/projectManage/surveyToDesign?userId=' + data.userId, 'post', data.CustomerEntry, "1");
},
//电站初勘-撤回勘测
backToSurvey: function backToSurvey(data) {
return request('main/projectManage/backToSurvey', 'post', data,'1');
},
//电站初勘-设计暂存、设计提交接口
designCustomerEntry: function designCustomerEntry(data) {
return request('main/projectManage/designCustomerEntry?userId=' + data.userId, 'post', data.CustomerEntry, "1");
},
//根据地址查询产品
getProjectByArea: function getProjectByArea(data) {
return request('main/projectManage/getProjectByArea', 'get', data);
},
//根据资方获取共签人信息
getPartnerSet: function getPartnerSet(data) {
return request('main/yueXiuCommon/getPartnerSet', 'get', data);
},
//获取指定字典
getDictionaryList: function getDictionaryList(data) {
return request('main/projectManage/getDictionaryList', 'get', data);
},
//获取全部表单设置
getAllConditionList: function getAllConditionList(data) {
return request('main/projectManage/getAllConditionList', 'post', data);
},
//获取所有字典
getAllDictionarySelect: function getAllDictionarySelect(data) {
return request('main/projectManage/getAllDictionarySelect', 'get', data);
},
//电站并网--国网授权
mergeTmp: function mergeTmp(data) {
return request('main/projectManage/mergeTmp?userId=' + data.userId, 'post', data.addReportReq, "1");
},
// 设计自审暂存/保存
updateCustomerEntry: function updateCustomerEntry(data) {
return request('main/projectManage/updateCustomerEntry?userId=' + data.userId, 'post', data.CustomerEntry, "1");
},
// 自审驳回
auditBack: function auditBack(data) {
return request('main/projectManage/auditBack?userId=' + data.userId, 'post', data, "1");
},
// 安装自审驳回
acceptZSRefuse: function acceptZSRefuse(data) {
return request('main/projectManage/acceptZSRefuse', 'get', data);
},
// 安装自审通过
acceptZS: function acceptZS(data) {
return request('main/projectManage/acceptZS', 'get', data);
},
// 发起合同
createContract: function createContract(data) {
return request('main/HuaRongContract/createContract', 'get', data);
},
//校验条码是否存在系统
checkMaterialCode: function checkMaterialCode(data) {
return request('main/projectManage/checkMaterialCode', 'get', data);
},
//选择整村汇流-获取数据
choseBoxGroupData: function choseBoxGroupData(data) {
return request('main/boxSet/choseBoxGroupData', 'get', data);
},
//选择汇流组保存、或者新增保存
saveOneOwner: function saveOneOwner(data) {
return request('main/boxSet/saveOneOwner', 'get', data);
},
//质量验收列表
qualityListData: function qualityListData(data) {
return request('main/quality/qualityListData', 'get', data);
},
//质量验收--派工人员
getDispatchEmp: function getDispatchEmp(data) {
return request('main/quality/getDispatchEmp', 'get', data);
},
//质量验收--保存派工
saveDispatch: function saveDispatch(data) {
return request('main/quality/saveDispatch', 'get', data);
},
//质量验收--详情
qualityDetailData: function qualityDetailData(data) {
return request('main/quality/qualityDetailData', 'get', data);
},
//质量验收--添加抽检
addSample: function addSample(data) {
return request('main/quality/addSample', 'get', data);
},
//质量验收--无法验收
canNotAcceptance: function canNotAcceptance(data) {
return request('main/quality/canNotAcceptance', 'get', data);
},
//质量验收--无法验收的查看
canNotAcceptanceDetail: function canNotAcceptanceDetail(data) {
return request('main/quality/canNotAcceptanceDetail', 'get', data);
},
//质量验收--撤回
cancelAccept: function cancelAccept(data) {
return request('main/quality/cancelAccept', 'get', data);
},
//质量验收--验收页面的验收项+暂存的信息
acceptItems: function acceptItems(data) {
return request('main/quality/acceptItems', 'get', data);
},
//质量验收--定位排序
listSorting: function listSorting(data) {
return request('main/quality/listSorting', 'get', data);
},
//质量验收--保存验收结果
saveAcceptItem: function saveAcceptItem(data) {
return request('main/quality/saveAcceptItem', 'post', data, '1');
},
//质量整改-列表
getQualityRectificationList: function getQualityRectificationList(data) {
return request('main/quality/rectification/getQualityRectificationList', 'get', data);
},
//质量整改-派工人员列表
getDispatchEmpList: function getDispatchEmpList(data) {
return request('main/quality/rectification/getDispatchEmpList', 'get', data);
},
//质量整改-派工
saveDispatchEmp: function saveDispatchEmp(data) {
return request('main/quality/rectification/saveDispatchEmp', 'post', data,'1');
},
//质量整改-详情
qualityRectificationDetail: function qualityRectificationDetail(data) {
return request('main/quality/rectification/qualityRectificationDetail', 'get', data);
},
//质量整改-整改保存
saveChangingQuality: function saveChangingQuality(data) {
return request('main/quality/rectification/saveChangingQuality', 'post', data,'1');
},
//质量整改-驳回/通过
saveAcceptQuality: function saveAcceptQuality(data) {
return request('main/quality/rectification/saveAcceptQuality', 'post', data);
},
//广发--根据屋顶类型获取相关数据
getKcFormSet: function getKcFormSet(data) {
return request('main/GFCommon/getKcFormSet', 'get', data);
},
//华融--提交预审
batchAdmit: function batchAdmit(data) {
return request('main/projectManage/batchAdmit', 'get', data);
},
//获取风雪压等级
getPressureLevel: function getPressureLevel(data) {
return request('main/projectManage/getPressureLevel', 'get', data);
},
}

@ -0,0 +1,15 @@
const api = require('./api/api.js');
App({
onLaunch() {
},
globalData: {
userInfo: null,
imgUrl: api.IMG_BASE_URL, //图片地址
url: api.API_BASE_URL, //接口地址
monitUrl: api.API_MONIT_URL, //监控接口地址
monitUpload: api.UP_MONIT_IMG, //监控上传图片路径
},
})

@ -0,0 +1,170 @@
{
"pages": [
"pages/startPage/startPage",
"pages/index/index",
"pages/mine/mine",
"pages/home/home",
"pages/forgotPassword/forgotPassword",
"pages/map/map",
"pages/pend/pend",
"pages/traderList/traderList",
"pages/appRecord/appRecord",
"pages/scanCode/scanCode"
],
"subpackages": [
{
"root": "home",
"name": "home",
"pages": [
"pages/entryInfo/entryInfo",
"pages/dataScreening/dataScreening",
"pages/dataScreeningDetails/dataScreeningDetails",
"pages/viewSchema/viewSchema",
"pages/infoRegistration/infoRegistration",
"components/infor/infor",
"components/survey/survey",
"components/install/install",
"components/installHR/installHR",
"components/finish/finish",
"components/finishHR/finishHR",
"components/onGrid/onGrid",
"pages/entryInfoDetails/entryInfoDetails",
"pages/customDetails/customDetails",
"pages/install/install",
"pages/installHR/installHR",
"pages/completion/completion",
"pages/completionHR/completionHR",
"pages/bwForm/bwForm",
"pages/installOwn/installOwn",
"pages/entryInfoAudit/entryInfoAudit",
"pages/entryInfoAuditHR/entryInfoAuditHR",
"pages/acceptance/acceptance",
"pages/acceptanceBW/acceptanceBW",
"pages/acceptanceAZ/acceptanceAZ",
"pages/entryInfoBT/entryInfoBT",
"pages/surveyForm/surveyForm",
"pages/surveyFormHr/surveyFormHr",
"pages/filesForm/filesForm",
"pages/ownerForm/ownerForm",
"pages/bankCardDetail/bankCardDetail",
"pages/dispatch/dispatch",
"pages/webView/webView",
"pages/customList/customList",
"pages/3days/3days",
"pages/uploadContract/uploadContract",
"pages/installSelfAudit/installSelfAudit",
"pages/converge/converge"
]
},
{
"root": "mine",
"name": "mine",
"pages": [
"pages/customerService/customerService",
"pages/contactUs/contactUs"
]
},
{
"root": "monitor",
"name": "monitor",
"pages": [
"pages/home/home",
"pages/workOrder/order/order",
"pages/workOrder/backDetail/backDetail",
"pages/workOrder/orderDetail/orderDetail",
"pages/workOrder/orderDetail2/orderDetail2",
"pages/center/center",
"pages/station/station",
"pages/notice/notice",
"pages/noticeDetail/noticeDetail",
"pages/technicalData/technicalData",
"pages/technicaDetail/technicaDetail",
"pages/lookImg/lookImg",
"pages/settlement/settlement",
"pages/stationDetail/stationDetail",
"pages/deviceList/deviceList",
"pages/deviceDetail/deviceDetail",
"pages/materialApply/materialApply",
"pages/myMaterial/myMaterial",
"pages/addMaterial/addMaterial",
"pages/materialDetail/materialDetail",
"pages/materialUse/materialUse",
"pages/materialList/materialList"
]
},
{
"root": "other",
"name": "other",
"pages": [
"pages/infoList/infoList",
"pages/dispatch/dispatch",
"pages/qualityAcceptList/qualityAcceptList",
"pages/qualityAcceptDetail/qualityAcceptDetail",
"pages/qualityAccept/qualityAccept",
"pages/unableAccept/unableAccept",
"pages/rectification/rectification",
"pages/rectifyForm/rectifyForm"
]
}
],
"preloadRule": {
"pages/home/home": {
"network": "all",
"packages": [
"home"
]
},
"pages/mine/mine": {
"network": "all",
"packages": [
"mine"
]
}
},
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "能辉新能源",
"navigationBarTextStyle": "black"
},
"tabBar": {
"custom": true,
"selectedColor": "#0a6597",
"color": "#999999",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [
{
"pagePath": "pages/home/home",
"text": "首页",
"iconPath": "/img/home.png",
"selectedIconPath": "/img/home-se.png"
},
{
"pagePath": "pages/pend/pend",
"text": "待办",
"iconPath": "/img/pend.png",
"selectedIconPath": "/img/pend-se.png"
},
{
"pagePath": "pages/mine/mine",
"text": "我的",
"iconPath": "/img/mine.png",
"selectedIconPath": "/img/mine-se.png"
}
]
},
"sitemapLocation": "sitemap.json",
"useExtendedLib": {
"weui": true
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于获取实时地理位置信息"
}
},
"requiredPrivateInfos": [
"getLocation"
],
"lazyCodeLoading": "requiredComponents"
}

1243
app.wxss

File diff suppressed because it is too large Load Diff

@ -0,0 +1,239 @@
// components/region/region.js
const {
findLinkNumberList
} = require('../../api/api')
Component({
/**
* 组件的属性列表
*/
properties: {
showRegion: {
type:Boolean,
value:false
},
provinceName: {
type:String,
value: ''
},
cityName: {
type:String,
value: ''
},
},
/**
* 组件的初始数据
*/
data: {
capitalId: '', //资方
bankName:'', //支行
bankNamed: '',//总行
bankNameList: [{
id: 1,
name: '中国工商银行'
},{
id: 2,
name: '中国农业银行'
},{
id: 3,
name: '中国银行'
},{
id: 4,
name: '中国建设银行'
},{
id: 5,
name: '中国邮政储蓄银行'
},{
id: 6,
name: '交通银行'
},{
id: 7,
name: '中信银行'
},{
id: 8,
name: '兴业银行'
},{
id: 9,
name: '华夏银行'
},{
id: 10,
name: '招商银行'
},{
id: 11,
name: '民生银行'
},{
id: 12,
name: '农村商业'
},{
id: 13,
name: '其他'
}], //开户银行
provinceList:[],
page: 1,
region: [], //开户地址
customItem: ''
},
ready(){
this.setData({
capitalId: wx.getStorageSync('capitalId')
})
},
pageLifetimes: {
show: function () {
// 页面被展示
// this._bindBankChange()
},
},
observers: {
'cityName': function (cityName) {
if(cityName){
var arr = this.data.region
arr[0] = this.data.provinceName
arr[1] = this.data.cityName
this.setData({
region: arr,
})
}
// console.log(333, this.data.provinceName)
}
},
/**
* 组件的方法列表
*/
methods: {
/**
*
* 搜索
*
* @param {*} e
*/
_bindBankChange: function (bankName) {
var that = this;
var page = that.data.page;
var list = that.data.provinceList;
if(this.data.capitalId =='04'){
this.setData({
region: []
})
}
findLinkNumberList({
capitals: wx.getStorageSync('capitalId'),
bankName: this.data.bankName?this.data.bankName:'', //总行名称
bankBranch: this.data.bankNamed?this.data.bankNamed:'', //支行名称
province: this.data.region[0]?this.data.region[0]:'',
city: this.data.region[1]?this.data.region[1]:'',
page: page,
limit: 15
}).then((res) => {
// var resData = res.map(itm=>itm.columns)
var resData = res.data
for (var i = 0; i < resData.length; i++) {
list.push(resData[i])
}
this.setData({
provinceList: list
})
})
},
/**
*
* 选择
*
* @param {*} e
*/
_chooseBank(e) {
const id = e.currentTarget.dataset.id
const name = e.currentTarget.dataset.name
var data = {
id: id,
name: name,
}
this._closeBank();
this.triggerEvent('chooseRegion', data);
},
/**
*
* 关闭弹框
*
* @param {*} e
*/
_closeBank(e) {
this.setData({
bankNamed: '',
// region: [],
bankName: "",
provinceList:[],
showRegion: false,
})
},
/**
* 搜索查询
*/
onSearch(e){
// console.log("执行",e.detail);
let bankName = e.detail;
if(bankName.length < 2){
wx.showToast({
title: '请输入至少2个字符',
icon: 'none',
duration: 2000
});
return;
}else{
this.setData({
page: 1,
provinceList: [],
bankName
})
}
this._bindBankChange();
},
//清空搜索框
onSearchClear(){
this.setData({
page: 1,
provinceList: [],
bankName: ''
})
this._bindBankChange();
},
//开户银行选择
bindBankList(e){
this.setData({
page: 1,
provinceList: [],
bankName_id: this.data.bankNameList[e.detail.value].id,
bankNamed: this.data.bankNameList[e.detail.value].name,
// bankNamed: this.data.bankNameList[e.detail.value].name == '其他' ? '' : this.data.bankNameList[e.detail.value].name,
})
this._bindBankChange();
},
//开户地址
bindRegionChange(e){
// console.log('picker发送选择改变携带值为', e.detail.value)
this.setData({
page: 1,
provinceList: [],
region: e.detail.value
})
this._bindBankChange();
},
more: function () {
this.data.page++;
this._bindBankChange()
},
//清空
emptyData(e){
this.setData({
page: 1,
provinceList: [],
region: []
})
this._bindBankChange();
},
}
})

@ -0,0 +1,8 @@
{
"component": true,
"usingComponents": {
"van-popup": "@vant/weapp/popup/index",
"van-search": "@vant/weapp/search/index",
"van-empty": "@vant/weapp/empty/index"
}
}

@ -0,0 +1,50 @@
<!--components/region/region.wxml-->
<!-- 选择器 -->
<van-popup show="{{ showRegion }}" position="bottom" duration="250" round custom-style="height: 90%;" bind:close="_closeBank" closeable lock-scroll>
<view class="content-province-title">
<image src="../../img/left-black.png" class="content-province-title-left" wx:if="{{backShow}}" />
请选择
</view>
<!-- 银行/地址 -->
<view class="tab-box" wx:if="{{capitalId !='04'}}">
<view>
<picker bindchange="bindBankList" range="{{bankNameList}}" range-key='name'>
<view class="picker-box">
<view wx:if="{{bankNamed !=''}}">
{{bankNamed}}
</view>
<view class="content-text content-text-gray" wx:else>
开户银行
</view>
</view>
</picker>
</view>
<view>
<picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}" level="city">
<view class="picker-box">
<view wx:if="{{region.length>0}}">{{region[0]}}{{region[1]}}</view>
<view wx:else>开户地址</view>
<view class="close" data-type="adr" catchtap="emptyData" wx:if="{{region.length>0}}">X</view>
</view>
</picker>
</view>
</view>
<view class="search-box">
<van-search
value="{{ bankName }}"
placeholder="请输入至少2个字符"
bind:search="onSearch"
bind:clear="onSearchClear"
bind:change="onSearch"
></van-search>
</view>
<scroll-view scroll-y="true" bindscrolltolower='more' class="content-province-sc" >
<view wx:if="{{provinceList.length>0}}" wx:for="{{provinceList}}" wx:key="index" class="content-province" bind:tap="_chooseBank" data-id="{{item.number}}" data-name="{{item.bank_name}}">{{item.bank_name}}</view>
<van-empty
wx:if="{{provinceList.length<=0}}"
class="custom-image"
image=""
description="暂无可选择数据,请先搜索"
/>
</scroll-view>
</van-popup>

@ -0,0 +1,40 @@
/* components/region/region.wxss */
.content-province-title {
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
font-size: 30rpx;
border-bottom: 3rpx solid #f2f2f2;
position: relative;
}
.content-province-title-left {
position: absolute;
left: 0;
margin-left: 30rpx;
width: 45rpx;
height: 45rpx;
}
.content-province-sc {
width: 100%;
height: calc(100% - 300rpx);
}
.content-province {
width: 100%;
height: 100rpx;
display: flex;
font-size: 26rpx;
align-items: center;
justify-content: center;
border-bottom: 3rpx solid #f2f2f2;
}
.tab-box{ display: flex; align-items: center; justify-content: space-between; height: 70rpx; border-bottom: 1px solid #f0f0f0;}
.tab-box>view{flex: 1; width: 50%; text-align: center; font-size: 24rpx; height: 70rpx; line-height: 70rpx; border-left: 1px solid #f0f0f0; font-weight: 800; }
.tab-box .picker view{white-space: nowrap; text-overflow: ellipsis; overflow: hidden;}
.picker-box{position: relative;}
.picker-box .close{position: absolute; right: 0rpx; top: 0; color: #999; padding: 0 30rpx;}

@ -0,0 +1,194 @@
// components/region/region.js
const {
getProvinceList,
getCitysByProId,
getAreaByCityId,
getStreetByAreaId
} = require('../../api/api')
Component({
/**
* 组件的属性列表
*/
properties: {
showRegion: {
type:Boolean,
value:false
},
traderId: {
type: String
}
},
/**
* 组件的初始数据
*/
data: {
},
pageLifetimes: {
show: function () {
// 页面被展示
this._bindRegionChange()
},
},
/**
* 组件的方法列表
*/
methods: {
/**
*
* 选择用户地址
*
* @param {*} e
*/
_bindRegionChange: function (e) {
getProvinceList({
traderId: this.data.traderId,
}).then((res) => {
this.setData({
provinceList: res
})
})
this.setData({
provinceShow: true
})
},
/**
*
* 选择省查找市
*
* @param {*} e
*/
_chooseProvince(e) {
const ProvinceID = e.currentTarget.dataset.id
const provinceName = e.currentTarget.dataset.name
const traderId = e.currentTarget.dataset.tid
this.setData({
provinceShow: false,
cityShow: true,
backShow: true,
provinceName: provinceName,
})
wx.showLoading({
title: '加载中',
mask: true
})
getCitysByProId({
province: ProvinceID,
traderId: traderId?traderId:'',
}).then((res) => {
wx.hideLoading()
this.setData({
cityList: res
})
})
},
/**
*
* 选择市查找区
*
* @param {*} e
*/
_chooseCity(e) {
const city = e.currentTarget.dataset.id
const cityName = e.currentTarget.dataset.name
const traderId = e.currentTarget.dataset.tid
this.setData({
cityShow: false,
areaShow: true,
cityName: cityName
})
wx.showLoading({
title: '加载中',
mask: true
})
getAreaByCityId({
city: city,
traderId: traderId?traderId:'',
}).then((res) => {
wx.hideLoading()
this.setData({
areaList: res
})
})
},
/**
*
* 选择区
*
* @param {*} e
*/
_chooseArea(e) {
const areaName = e.currentTarget.dataset.name
this.setData({
showRegion: false,
})
setTimeout(()=>{
this.setData({
provinceShow: true,
areaShow: false,
backShow: false,
areaName: areaName
})
console.log("选择的省市区===》》》", this.data.provinceName, this.data.cityName, this.data.areaName)
var data = {
provinceName: this.data.provinceName,
cityName: this.data.cityName,
areaName: this.data.areaName,
}
this.triggerEvent('chooseRegion', data)
},200)
},
/**
*
* 市区后退
*
* @param {*} e
*/
_backChooseRegion(e) {
if (this.data.cityShow) {
this.setData({
cityShow: false,
provinceShow: true,
backShow: false,
})
} else if (this.data.areaShow) {
this.setData({
areaShow: false,
cityShow: true
})
}
},
/**
*
* 关闭弹框
*
* @param {*} e
*/
_closeRegion(e) {
this.setData({
provinceName: "",
cityName: "",
areaName: "",
addressName: "",
provinceShow: true,
showRegion: false,
cityShow: false,
areaShow: false,
backShow: false,
})
},
}
})

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"van-popup": "@vant/weapp/popup/index"
}
}

@ -0,0 +1,13 @@
<!--components/region/region.wxml-->
<!-- 省市区街道选择器 -->
<van-popup show="{{ showRegion }}" position="bottom" duration="250" round custom-style="height: 75%;" bind:close="_closeRegion" closeable lock-scroll>
<view class="content-province-title">
<image src="../../img/left-black.png" class="content-province-title-left" wx:if="{{backShow}}" bind:tap="_backChooseRegion" />
请选择地址
</view>
<scroll-view scroll-y="true" class="content-province-sc">
<view wx:if="{{provinceList.length>0 && provinceShow}}" wx:for="{{provinceList}}" wx:key="index" class="content-province" bind:tap="_chooseProvince" data-id="{{item.columns.ProvinceID}}" data-tid="{{item.columns.traderId}}" data-name="{{item.columns.ProvinceName}}">{{item.columns.ProvinceName}}</view>
<view wx:if="{{cityList.length>0 && cityShow}}" wx:for="{{cityList}}" wx:key="index" class="content-province" bind:tap="_chooseCity" data-id="{{item.columns.CityID}}" data-tid="{{item.columns.traderId}}" data-name="{{item.columns.CityName}}">{{item.columns.CityName}}</view>
<view wx:if="{{areaList.length>0 && areaShow}}" wx:for="{{areaList}}" wx:key="index" class="content-province" bind:tap="_chooseArea" data-id="{{item.columns.DistrictID}}" data-name="{{item.columns.DistrictName}}">{{item.columns.DistrictName}}</view>
</scroll-view>
</van-popup>

@ -0,0 +1,35 @@
/* components/region/region.wxss */
.content-province-title {
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
font-size: 30rpx;
border-bottom: 3rpx solid #f2f2f2;
position: relative;
}
.content-province-title-left {
position: absolute;
left: 0;
margin-left: 30rpx;
width: 45rpx;
height: 45rpx;
}
.content-province-sc {
width: 100%;
height: calc(100% - 100rpx);
}
.content-province {
width: 100%;
height: 100rpx;
display: flex;
font-size: 26rpx;
align-items: center;
justify-content: center;
border-bottom: 3rpx solid #f2f2f2;
}

@ -0,0 +1,69 @@
// pages/components/statusBar/statusBar.js
Component({
/**
* 组件的属性列表
*/
properties: {
showBackTop: Boolean,
title: String
},
/**
* 组件的初始数据
*/
data: {
showBack: true
},
/**
* 组件的方法列表
*/
methods: {
/**
*
*返回上一级
*
* @param {*} e
*/
_backPage(e) {
wx.navigateBack()
},
},
lifetimes: {
attached: function () {
wx.getSystemInfo({
success: (res) => {
const isiOS = res.system.indexOf('iOS') > -1;
this.setData({
navHeight: isiOS ? 44 : 48,
statusBarHeight: res.statusBarHeight,
windowHeight: res.windowHeight,
windowWidth: res.windowWidth,
})
}
})
// wx.getSystemInfo({
// success: (res) => {
// const isiOS = res.system.indexOf('iOS') > -1;
// this.setData({
// navHeight: isiOS ? 44 : 48,
// statusBarHeight: res.statusBarHeight,
// windowHeight: res.windowHeight,
// windowWidth: res.windowWidth,
// })
// }
// })
},
},
pageLifetimes: {
show: function () {
if (getCurrentPages().length <= 1) {
this.setData({
showBack: false
})
}
},
}
})

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

@ -0,0 +1,11 @@
<!--pages/components/statusBar/statusBar.wxml-->
<view class="diynavbar-content">
<view class="diynavbar" style="height:{{statusBarHeight + navHeight}}px">
<view class="navBar-content" style="height:{{navHeight}}px;">
<view class="navBar-search-container">
<image src="/img/left.png" class="navBar-search-image" bind:tap="_backPage" wx:if="{{showBack}}" />
<text class="navBar-search-text">{{title}}</text>
</view>
</view>
</view>
</view>

@ -0,0 +1,47 @@
/* pages/components/statusBar/statusBar.wxss */
.diynavbar-content {
position: fixed;
top: 0;
z-index: 9999;
}
.diynavbar {
display: flex;
align-items: flex-end;
}
.diynavbar-none {
display: flex;
align-items: flex-end;
justify-content: center;
}
.navBar-content {
width: 750rpx;
display: flex;
align-items: center;
}
.navBar-search-container {
position: relative;
display: flex;
width: 100%;
flex-direction: row;
justify-content: center;
align-items: center;
margin-left: 20rpx;
}
.navBar-search-text {
font-size: 36rpx;
font-weight: bold;
color: #ffffff;
}
.navBar-search-image {
position: absolute;
width: 65rpx;
height: 65rpx;
left: 0;
}

@ -0,0 +1,78 @@
Component({
data: {
selected: 0,
"selectedColor": "#0a6597",
"color": "#999999",
"borderStyle": "black",
"backgroundColor": "#ffffff",
navList: []
},
ready() {
if(wx.getStorageSync('userType') == 'PLATFORM_EMP'){//平台员工
this.setData({
navList: [{
"pagePath": "/pages/home/home",
"text": "首页",
"iconPath": "/img/home.png",
"selectedIconPath": "/img/home-se.png"
},
{
"pagePath": "/pages/pend/pend",
"text": "待办",
"iconPath": "/img/pend.png",
"selectedIconPath": "/img/pend-se.png"
},
{
"pagePath": "/pages/mine/mine",
"text": "我的",
"iconPath": "/img/mine.png",
"selectedIconPath": "/img/mine-se.png"
}]
});
}else if(wx.getStorageSync('userType') == 'SERVICE_PROV'){//服务商
this.setData({
navList: [{
"pagePath": "/monitor/pages/home/home",
"text": "首页",
"iconPath": "/img/home.png",
"selectedIconPath": "/img/home-se.png"
},
{
"pagePath": "/monitor/pages/workOrder/workOrder",
"text": "工单",
"iconPath": "/img/mine.png",
"selectedIconPath": "/img/mine-se.png"
}]
});
}else{//代理商
this.setData({
navList: [{
"pagePath": "/pages/home/home",
"text": "首页",
"iconPath": "/img/home.png",
"selectedIconPath": "/img/home-se.png"
},
{
"pagePath": "/pages/mine/mine",
"text": "我的",
"iconPath": "/img/mine.png",
"selectedIconPath": "/img/mine-se.png"
}]
});
}
},
methods: {
switchTab(e) {
const data = e.currentTarget.dataset
const url = data.path
if(url =='/monitor/pages/home/home' || url =='/monitor/pages/workOrder/workOrder'){
wx.navigateTo({
url: url, //因为添加页面在分包中 因此只能使用wx.navigateTo跳转
})
}else{
wx.switchTab({url})
}
}
}
})

@ -0,0 +1,3 @@
{
"component": true
}

@ -0,0 +1,8 @@
<!--miniprogram/custom-tab-bar/index.wxml-->
<view class="tab-bar">
<view class="tab-bar-border"></view>
<view wx:for="{{navList}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">
<image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></image>
<view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view>
</view>
</view>

@ -0,0 +1,40 @@
.tab-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: white;
display: flex;
box-sizing: content-box;
height: 48px;
padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom);
}
.tab-bar-border {
background-color: rgba(0, 0, 0, 0.15);
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 1px;
transform: scaleY(0.5);
}
.tab-bar-item {
flex: 1;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.tab-bar-item image {
width: 27px;
height: 27px;
}
.tab-bar-item view {
font-size: 10px;
}

@ -0,0 +1,918 @@
// home/components/finish/finish.js
const {
getFormSet,IMG_BASE_URL,WU_TU_PIAN_URL
} = require('../../../api/api')
Component({
/**
* 组件的属性列表
*/
properties: {
detailObj: Object,
detail: Object
},
/**
* 组件的初始数据
*/
data: {
formSetObj:{},
capture: ['album','camera'],
//安装
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: 15,
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: '1',
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: ''
},
],
// 安装
photo: {
supplementVideoUrl: [], //补充视频
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: [], //其他资料
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:[], //并网箱逆变器防雨罩照片
},
},
ready(){
this.getFormSet()
console.log('安装组件', this.data)
},
/**
* 组件的方法列表
*/
methods: {
/** 获取自定义字段 */
getFormSet() {
getFormSet({
stage: '03', //01:信息登记,02踏勘设计,03电站安装,04电站并网
partner: this.data.detail.management,
}).then((res) => {
let photoTips = this.data.photoTips;
let keyList = Object.keys(res.data.columns)
photoTips.forEach((item)=>{
keyList.forEach((item3)=>{
if(item.showKey === item3){
item.status = res.data.columns[item3].status
item.must = res.data.columns[item3].mustFillFlag
}
})
})
let resp = this.data.detail
if (resp.contract_url) {//合同
let contractUrl = resp.contract_url ? resp.contract_url .split(",") : [];
contractUrl.forEach(itm=>{
this.data.photo.contractUrl.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
[`photo.contractUrl`]:resp.contract_url ? this.data.photo.contractUrl: [],
})
}
if (resp.filing_document_photo) {//备案证
let filingDocumentPhoto = resp.filing_document_photo ? resp.filing_document_photo.split(",") : [];
filingDocumentPhoto.forEach(itm=>{
this.data.photo.filingDocumentPhoto.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
// [`photo.filingDocumentPhoto[0].url`]:resp.filing_document_photo ? IMG_BASE_URL + resp.filing_document_photo : WU_TU_PIAN_URL,//备案证
[`photo.filingDocumentPhoto`]: this.data.photo.filingDocumentPhoto,
})
}
if (resp.report) {
for(let i in this.data.photo){
if (resp.report[i]) {
let arr = resp.report[i].split(","),arr2=[];
arr.forEach(itm=>{
arr2.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
[`photo.${i}`]: arr2,
});
}
}
}
this.setData({
formSetObj: res.data.columns,
photoTips
})
})
},
//打开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链接列表
})
}
}
},
}
})

@ -0,0 +1,5 @@
{
"usingComponents": {
"van-uploader": "@vant/weapp/uploader/index"
}
}

@ -0,0 +1,153 @@
<!--home/components/finish/finish.wxml-->
<wxs src="/wxs/util.wxs" module="util"></wxs>
<view class="content">
<block wx:if="{{formSetObj.filing_document_code.status =='1'}}">
<view class="content-list">
<view class="content-title-item">项目备案代码</view>
<input type="text" class="content-input" placeholder="" model:value="{{detail.filing_document_code}}" disabled />
</view>
</block>
<block wx:if="{{formSetObj.filing_document_photo.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">备案证(1-4张)</view>
</view>
<view class="txt-upload">
<view wx:for="{{photo.filingDocumentPhoto}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</view>
</view>
</block>
<block wx:if="{{detail.tenant_type == '2'}}">
<block wx:if="{{formSetObj.other_imgs1.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">银行印鉴留样(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs1}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs1" data-type="otherImgs1" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.other_imgs2.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">签约现场照片-法定代表人/负责人签字照(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs2}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs2" data-type="otherImgs2" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.other_imgs3.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">签约现场照片-正脸、持笔/持印、合同签署页同框(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs3}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs3" data-type="otherImgs3" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.other_imgs4.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">签署完成照片(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs4}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs4" data-type="otherImgs4" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
</block>
<!-- 广发历史电站才显示 -->
<block wx:if="{{detail.is_history =='1' && detail.management =='03'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">合同</view>
</view>
<view class="txt-upload" style="padding-left: 10rpx;">
<view wx:for="{{photo.contractUrl}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</view>
</view>
</block>
</view>
<!-- 工程信息 -->
<view class="content">
<view class="content-title">工程信息</view>
<view>
<view class="content-line"></view>
<view class="content-img-box">
<block wx:for="{{photoTips}}" wx:for-item="child" wx:for-index="childIndex" wx:key="childIndex">
<block wx:if="{{child.status =='1'}}">
<view class="content-line" style="margin:10rpx 5rpx 10rpx" wx:if="{{childIndex!=0}}"></view>
<view class="content-img-name {{child.num>1?'w-100':''}}">
<view class="content-attention-text">
<view class="content-attention-showText f24">{{child.title}}
<block wx:if="{{child.num>1 && child.min}}">({{child.min}}-{{child.num}}张)</block>
<block wx:elif="{{child.num>1}}">(1-{{child.num}}张)</block>
</view>
</view>
<view class="txt-upload" wx:if="{{child.key == 'otherFiles' || child.key == 'kgConditionFiles'}}">
<view wx:for="{{photo[child.key]}}" wx:key="childsIndex" wx:for-index="childsIndex" wx:for-item="childs" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{childs.name}}">{{util.formartFileName(childs.name)}}</text>
</view>
</view>
<block wx:elif="{{child.key == 'supplementVideoUrl'}}">
<van-uploader accept="video" file-list="{{photo[child.key]}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="{{child.key}}" data-name="{{child.key}}" max-count="1">
</van-uploader>
</block>
<view class="img-box" wx:else>
<van-uploader file-list="{{photo[child.key]}}" bind:after-read="afteruploadPhotoRead" data-name="{{child.key}}" use-before-read bind:before-read="beforeRead" disabled deletable="{{false}}" data-type="{{child.key}}" preview-size="150rpx" preview-image preview-full-image max-count="{{child.num}}" show-upload="{{false}}" style="flex: 1;">
</van-uploader>
</view>
</view>
</block>
</block>
</view>
</view>
<block wx:if="{{formSetObj.complete_remark.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">完工备注</view>
<view class="content-input">{{detail.report.completeRemark}}</view>
</view>
</block>
<!-- <block wx:if="{{formSetObj.other_files.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">其他资料</view>
<view class="txt-upload">
<view wx:for="{{otherFiles}}" wx:key="index" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{item}}">{{util.formartFileName(item)}}</text>
</view>
</view>
</view>
</block> -->
</view>

@ -0,0 +1,7 @@
/* home/components/finish/finish.wxss */
@import "../../pages/completion/completion.wxss";
/** 文件上传样式 **/
.txt-upload{flex: 1; color: blue; font-size: 24rpx; width: 100%;}
.txt-upload-list{ display: flex; justify-content: space-between; margin:4rpx 0 20rpx;}
.txt-upload-list text:first-child{flex: 1; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
.txt-upload-list text:last-child{width: 80rpx; margin-left: 20rpx;}

@ -0,0 +1,938 @@
// home/components/finish/finish.js
const {
getFormSet,IMG_BASE_URL,WU_TU_PIAN_URL
} = require('../../../api/api')
Component({
/**
* 组件的属性列表
*/
properties: {
detailObj: Object,
detail: Object
},
/**
* 组件的初始数据
*/
data: {
formSetObj:{},
capture: ['album','camera'],
//安装
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: 15,
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: 'dzjc1',
must: '1',
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: ''
},
],
// 安装
photo: {
supplementVideoUrl: [], //补充视频
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: [], //其他资料
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:[],// 防水措施图-其他图片
//华融
otherImgs5:[], //水槽细节照片
otherImgs6:[], //落水管照片
otherImgs7:[], //假梁-斜梁方向
otherImgs8:[], //并网箱逆变器防雨罩照片
},
multiPhoto: [], //图片
remarkArr:[], //完工备注
tabIndex: '0'
},
ready(){
this.getFormSet()
},
/**
* 组件的方法列表
*/
methods: {
/** 获取自定义字段 */
getFormSet() {
getFormSet({
stage: '03', //01:信息登记,02踏勘设计,03电站安装,04电站并网
partner: this.data.detail.management,
}).then((res) => {
let photoTips = this.data.photoTips;
let keyList = Object.keys(res.data.columns)
photoTips.forEach((item)=>{
keyList.forEach((item3)=>{
if(item.showKey === item3){
item.status = res.data.columns[item3].status
item.must = res.data.columns[item3].mustFillFlag
}
})
})
let resp = this.data.detail
if (resp.contract_url) {//合同
let contractUrl = resp.contract_url ? resp.contract_url .split(",") : [];
contractUrl.forEach(itm=>{
this.data.photo.contractUrl.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
[`photo.contractUrl`]:resp.contract_url ? this.data.photo.contractUrl: [],
})
}
if (resp.filing_document_photo) {//备案证
let filingDocumentPhoto = resp.filing_document_photo ? resp.filing_document_photo.split(",") : [];
filingDocumentPhoto.forEach(itm=>{
this.data.photo.filingDocumentPhoto.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
// [`photo.filingDocumentPhoto[0].url`]:resp.filing_document_photo ? IMG_BASE_URL + resp.filing_document_photo : WU_TU_PIAN_URL,//备案证
[`photo.filingDocumentPhoto`]: this.data.photo.filingDocumentPhoto,
})
}
let multiPhoto = []
resp.projectDetailList.forEach((item,index)=>{
this.setData({
[`remarkArr[${index}].completeRemark`]: item.acceptingReport.completeRemark, //完工备注
[`photo.safetyWarningImg2`]: item.acceptingReport.safetyWarningImg2 ? item.acceptingReport.safetyWarningImg2.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //三级安全教育卡
[`photo.kgConditionFiles`]: item.acceptingReport.kgConditionFiles ? item.acceptingReport.kgConditionFiles.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //安全防护措施合照照片
})
//图片
let photo = {};
if (item.acceptingReport) {
for(let key in this.data.photo){
photo[key] = item.acceptingReport[key] ? item.acceptingReport[key].split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : []
}
}
multiPhoto.push(photo);
})
this.setData({
multiPhoto
})
console.log('安装组件2', multiPhoto)
// if (resp.report) {
// for(let i in this.data.photo){
// if (resp.report[i]) {
// let arr = resp.report[i].split(","),arr2=[];
// arr.forEach(itm=>{
// arr2.push({
// name:itm,
// url:IMG_BASE_URL + itm
// });
// });
// this.setData({
// [`photo.${i}`]: arr2,
// });
// }
// }
// }
this.setData({
formSetObj: res.data.columns,
photoTips
})
})
},
//打开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链接列表
})
}
}
},
//tab切换
changeTab(e){
let index = e.currentTarget.dataset.index
this.setData({
tabIndex: index
})
}
}
})

@ -0,0 +1,5 @@
{
"usingComponents": {
"van-uploader": "@vant/weapp/uploader/index"
}
}

@ -0,0 +1,182 @@
<!--home/components/finish/finish.wxml-->
<wxs src="/wxs/util.wxs" module="util"></wxs>
<view class="content">
<block wx:if="{{formSetObj.filing_document_code.status =='1'}}">
<view class="content-list">
<view class="content-title-item">项目备案代码</view>
<input type="text" class="content-input" placeholder="" model:value="{{detail.filing_document_code}}" disabled />
</view>
</block>
<block wx:if="{{formSetObj.filing_document_photo.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">备案证(1-4张)</view>
</view>
<view class="txt-upload">
<view wx:for="{{photo.filingDocumentPhoto}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</view>
</view>
</block>
<block wx:if="{{detail.tenant_type == '2'}}">
<block wx:if="{{formSetObj.other_imgs1.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">银行印鉴留样(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs1}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs1" data-type="otherImgs1" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.other_imgs2.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">签约现场照片-法定代表人/负责人签字照(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs2}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs2" data-type="otherImgs2" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.other_imgs3.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">签约现场照片-正脸、持笔/持印、合同签署页同框(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs3}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs3" data-type="otherImgs3" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.other_imgs4.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">签署完成照片(1-4张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.otherImgs4}}" bind:after-read="afteruploadPhotoRead" use-before-read bind:before-read="beforeRead" data-name="otherImgs4" data-type="otherImgs4" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="4" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
</block>
<!-- 广发历史电站才显示 -->
<block wx:if="{{detail.is_history =='1' && detail.management =='03'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<view class="content-attention-showText f28">合同</view>
</view>
<view class="txt-upload" style="padding-left: 10rpx;">
<view wx:for="{{photo.contractUrl}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</view>
</view>
</block>
</view>
<!-- 工程信息 -->
<view class="content">
<view class="content-title">工程信息</view>
<block wx:if="{{formSetObj.safety_warning_img2.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<text style="color: red;" wx:if="{{formSetObj.safety_warning_img2.mustFillFlag =='1'}}">*</text>
<text style="color: red; visibility: hidden;" wx:else>*</text>
<view class="content-attention-showText f28">三级安全教育卡(1-15张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.safetyWarningImg2}}" bind:after-read="afteruploadPhotoRead" data-name="safetyWarningImg2" data-type="safetyWarningImg2" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.kg_condition_files.status =='1'}}">
<view class="content-line"></view>
<view class="content-img-box">
<view class="content-img-name">
<view class="content-attention-text">
<text style="color: red;" wx:if="{{formSetObj.kg_condition_files.mustFillFlag =='1'}}">*</text>
<text style="color: red; visibility: hidden;" wx:else>*</text>
<view class="content-attention-showText f28">安全防护措施合照照片(1-15张)</view>
</view>
<view class="img-box">
<van-uploader capture="{{capture}}" file-list="{{photo.kgConditionFiles}}" bind:after-read="afteruploadPhotoRead" data-name="kgConditionFiles" data-type="kgConditionFiles" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1" style="flex: 1;">
</van-uploader>
</view>
</view>
</view>
</block>
<view class="content-line"></view>
<!-- 多产品分类 -->
<view class="detail-tab">
<view wx:for="{{detail.projectList}}" wx:key="index" class="{{tabIndex == index?'active':''}}" data-index="{{index}}" bind:tap="changeTab">
{{item.roofType}}
<view wx:if="{{tabIndex ==index}}" class="actived"></view>
</view>
</view>
<view>
<view class="content-line"></view>
<view class="content-img-box">
<block wx:for="{{photoTips}}" wx:for-item="child" wx:for-index="childIndex" wx:key="childIndex">
<block wx:if="{{child.status =='1'}}">
<view class="content-line" style="margin:10rpx 5rpx 10rpx" wx:if="{{childIndex!=0}}"></view>
<view class="content-img-name {{child.num>1?'w-100':''}}">
<view class="content-attention-text">
<view class="content-attention-showText f24">{{child.title}}
<block wx:if="{{child.num>1 && child.min}}">({{child.min}}-{{child.num}}张)</block>
<block wx:elif="{{child.num>1}}">(1-{{child.num}}张)</block>
</view>
</view>
<view class="txt-upload" wx:if="{{child.key == 'otherFiles' || child.key == 'kgConditionFiles'}}">
<view wx:for="{{multiPhoto[tabIndex][child.key]}}" wx:key="childsIndex" wx:for-index="childsIndex" wx:for-item="childs" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{childs.name}}">{{util.formartFileName(childs.name)}}</text>
</view>
</view>
<block wx:elif="{{child.key == 'supplementVideoUrl'}}">
<van-uploader accept="video" file-list="{{multiPhoto[tabIndex][child.key]}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="{{child.key}}" data-name="{{child.key}}" max-count="1">
</van-uploader>
</block>
<view class="img-box" wx:else>
<van-uploader file-list="{{multiPhoto[tabIndex][child.key]}}" bind:after-read="afteruploadPhotoRead" data-name="{{child.key}}" use-before-read bind:before-read="beforeRead" disabled deletable="{{false}}" data-type="{{child.key}}" preview-size="150rpx" preview-image preview-full-image max-count="{{child.num}}" show-upload="{{false}}" style="flex: 1;">
</van-uploader>
</view>
</view>
</block>
</block>
</view>
</view>
<block wx:if="{{formSetObj.complete_remark.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">完工备注</view>
<view class="content-input">{{remarkArr[tabIndex].completeRemark}}</view>
</view>
</block>
</view>

@ -0,0 +1,12 @@
/* home/components/finish/finish.wxss */
@import "../../pages/completion/completion.wxss";
/** 文件上传样式 **/
.txt-upload{flex: 1; color: blue; font-size: 24rpx; width: 100%;}
.txt-upload-list{ display: flex; justify-content: space-between; margin:4rpx 0 20rpx;}
.txt-upload-list text:first-child{flex: 1; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
.txt-upload-list text:last-child{width: 80rpx; margin-left: 20rpx;}
.detail-tab{display: flex; justify-content: space-between; height: 90rpx; border-bottom: 1px solid #f0f0f0; color: #666666; position: sticky; top: 0; background: #FFF; z-index: 99; overflow: auto; background-color: #FFF;}
.detail-tab>view{flex: 1; text-align: center; line-height: 82rpx; font-size: 28rpx; position: relative; white-space: nowrap; word-break: break-all; margin: 0 20rpx;}
.detail-tab>view.active{color: #333333; font-size: 32rpx;}
.detail-tab>view .actived{width: 60rpx; height: 6rpx; background-color: #0a6597; border-radius: 3rpx; margin: 0 auto;}

@ -0,0 +1,69 @@
// home/components/infor/infor.js
const {
getPartnerSet,getAllConditionList
} = require('../../../api/api')
Component({
/**
* 组件的属性列表
*/
properties: {
// formSetObj: Object,
photo: Object,
detailObj: Object,
},
/**
* 组件的初始数据
*/
data: {
isComplement: false
},
ready(){
this.setData({
capitalId: wx.getStorageSync('capitalId')
})
//当业主年龄大于65岁时共签人信息必填,并且是开启overageFlag是否开启超龄1.开启 2.关闭
this.getPartnerSet(this.data.detailObj.detail.management,()=>{
if (this.data.detailObj.detail.overageFlag=='1' && this.data.detailObj.detail.age >= this.data.partnerSetObj.needSignerAge) {
this.setData({
isComplement: true
})
}
})
this.getAllConditionList()
// console.log(1221, this.data)
},
/**
* 组件的方法列表
*/
methods: {
/**
*
* 获取资方共签人
*
* @param {*} e
*/
/*** 获取资方共签人 */
getPartnerSet(partner, callback) {
getPartnerSet({
partnerId: partner,
}).then((res) => {
this.setData({
partnerSetObj: res.data
})
if(callback) callback()
})
},
/** 获取自定义字段 */
getAllConditionList() {
getAllConditionList({ //01:信息登记,02踏勘设计,03电站安装,04电站并网, 05:档案
partner: this.data.detailObj.detail.management,
}).then((res) => {
this.setData({
formSetObj: res.data
})
})
},
}
})

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"van-uploader": "@vant/weapp/uploader/index"
}
}

@ -0,0 +1,380 @@
<!--home/components/infor/infor.wxml-->
<!-- 业主信息 -->
<view class="content" style="margin-top: 0;" wx:if="{{detailObj.tenant_type =='1'}}">
<view class="content-title">客户基本信息</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">客户类型</view>
<text>个人</text>
</view>
<block wx:if="{{formSetObj['01'].id_card_front.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">身份证照片</view>
<van-uploader file-list="{{photo.idCardFrontFileList }}" bind:after-read="afteruploadPhotoRead" disabled disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
<van-uploader file-list="{{ photo.idCardBackFileList }}" bind:after-read="afteruploadPhotoRead" disabled disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-0.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['01'].tenant_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">业主姓名</view>
<text>{{detailObj.name}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].birthday_date.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">出生日期</view>
<text>{{detailObj.detail.birthday_date}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].ic_validity_begin.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">身份证生效日</view>
<text>{{detailObj.detail.ic_validity_begin}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].ic_validity_end.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">身份证失效日</view>
<text>{{detailObj.detail.ic_validity_end}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].gender.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">性别</view>
<text>{{detailObj.gender}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].age.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">年龄</view>
<text>{{detailObj.age}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].id_code.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">身份证号</view>
<text>{{detailObj.idCard}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].mobile.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">联系电话</view>
<text>{{detailObj.phone}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].exigence_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">紧急联系人</view>
<text>{{detailObj.detail.exigence_name}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].exigence_phone.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">紧急联系电话</view>
<text>{{detailObj.detail.exigence_phone}}</text>
</view>
</block>
<!-- <block wx:if="{{formSetObj.pca_address.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">业主地址</view>
<text>{{detailObj.region}}</text>
</view>
</block> -->
</view>
<!-- 单位信息 -->
<view class="content" wx:else>
<view class="content-title">客户基本信息</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">客户类型</view>
<text>单位</text>
</view>
<block wx:if="{{formSetObj['01'].tenant_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">单位名称</view>
<text>{{detailObj.name}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].regno.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">统一社会信用代码</view>
<text>{{detailObj.regno}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].regno_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">营业执照</view>
<van-uploader file-list="{{photo.regnoUrl}}" data-name="regnoUrl" data-type="" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/img-base.png" class="content-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['01'].mobile.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">联系电话</view>
<text>{{detailObj.phone}}</text>
</view>
</block>
<!-- <block wx:if="{{formSetObj.pca_address.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">安装地址</view>
<text>{{detailObj.region}}</text>
</view>
</block> -->
<block wx:if="{{formSetObj['01'].id_card_front.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">负责人身份证</view>
<van-uploader file-list="{{ photo.idCardFrontFileList }}" data-name="idCardFrontFileList" bind:after-read="afteruploadPhotoReadPositive" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
<van-uploader file-list="{{ photo.idCardBackFileList }}" data-name="idCardBackFileList" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-0.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['01'].corp.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">负责人姓名</view>
<text>{{detailObj.corp}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].id_code.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">证件号码</view>
<text>{{detailObj.idCard}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].exigence_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">紧急联系人</view>
<text>{{detailObj.detail.exigence_name}}</text>
</view>
</block>
<block wx:if="{{formSetObj['01'].exigence_phone.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">紧急联系电话</view>
<text>{{detailObj.detail.exigence_phone}}</text>
</view>
</block>
</view>
<!-- 广发不显示档案 -->
<block wx:if="{{capitalId != '03'}}">
<!-- 个人档案信息 -->
<view class="content" wx:if="{{detailObj.tenant_type =='1'}}">
<view class="content-title">档案信息</view>
<block wx:if="{{formSetObj['05'].residence_booklet.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">户口本复印件</view>
<van-uploader file-list="{{photo.residenceBooklet}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].house_ownership.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">房产证</view>
<van-uploader file-list="{{photo.phoneHouse}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].credit_certificate.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">信誉凭证</view>
<van-uploader file-list="{{photo.creditCertificate}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].bank_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">银行账户名称</view>
<text>{{detailObj.bankName }}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bank_code.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">银行账号</view>
<text>{{detailObj.bankCode}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].tss_bank_num_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">开户行</view>
<text>{{detailObj.tssBankNumName }}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bank_card.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">银行卡照片</view>
<van-uploader file-list="{{photo.bankCard}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</block>
<!-- 补充信息 -->
<block wx:if="{{isComplement}}">
<block wx:if="{{formSetObj['05'].bp_card_front.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">共签人身份证照片</view>
<van-uploader file-list="{{photo.bpCardFront }}" bind:after-read="afteruploadPhotoRead" disabled disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
<van-uploader file-list="{{ photo.bpCardBack }}" bind:after-read="afteruploadPhotoRead" disabled disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-0.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].bp_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">共签人名称</view>
<text>{{detailObj.bpName}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bp_id_card.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">证件号码</view>
<text>{{detailObj.bpIdCard}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bp_mobile.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">手机号</view>
<text>{{detailObj.bpMobile}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bp_relation.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">共签人与业主关系</view>
<text>{{detailObj.bpRelation}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bp_file.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">共签人子女证明材料</view>
<van-uploader file-list="{{photo.bpFile }}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
</block>
</view>
<!-- 单位档案信息 -->
<view class="content" wx:else>
<view class="content-title">档案信息</view>
<block wx:if="{{formSetObj['05'].resolution_paper_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">村民代表大会决议书</view>
<van-uploader file-list="{{photo.resolutionPaperUrl}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].yszc_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">村委议事章程</view>
<van-uploader file-list="{{photo.yszcUrl}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].account_info_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">对公账户信息</view>
<van-uploader file-list="{{photo.accountInfoUrl}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].ownership_certificate_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">产权证明-集体土地使用证</view>
<van-uploader file-list="{{photo.ownershipCertificateUrl}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].other_ownership_certificate_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">产权证明-不动产证书/查册证明/相关确权文件</view>
<van-uploader file-list="{{photo.otherOwnershipCertificateUrl}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
<image src="../../img/id-card-1.png" class="id-card-img" />
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj['05'].bank_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">银行账户名称</view>
<text>{{detailObj.bankName }}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bank_code.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">银行账号</view>
<text>{{detailObj.bankCode}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].tss_bank_num_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">开户行</view>
<text>{{detailObj.tssBankNumName }}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].bank_card.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">银行卡照片</view>
<van-uploader file-list="{{photo.bankCard}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</block>
</view>
</block>

@ -0,0 +1,2 @@
/* home/components/infor/infor.wxss */
@import "../../pages/entryInfoDetails/entryInfoDetails";

@ -0,0 +1,34 @@
// home/components/install/install.js
Component({
/**
* 组件的属性列表
*/
properties: {
detailObj: Object,
cagesList: Array,
supportList: Array,
converterList: Array,
componentList: Array,
nbqList: Array,
zjMap: Object
},
/**
* 组件的初始数据
*/
data: {
},
ready(){
this.setData({
capitalId: this.data.detailObj.management
})
// console.log(1212, this.data)
},
/**
* 组件的方法列表
*/
methods: {
}
})

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

@ -0,0 +1,150 @@
<!--home/components/install/install.wxml-->
<!-- <view class="content-list-warehouse">
<view class="content-address-warehouse">
<picker bindchange="bindWarehourseList" range="{{warehourseList}}" range-key='name'>
<view class="content-picker-warehouse">
<text style="color: red;">*</text>所属仓库
<view style="flex: 1; margin-left: 20rpx;">
{{warehourseName}}
</view>
<image src="../../img/arrow.png" class="content-img-right-warehouse" />
</view>
</picker>
</view>
</view> -->
<!-- 并网箱 -->
<view class="content">
<view class="content-title">
<view class="content-title-flex">
并网箱
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{cagesList}}" wx:key="index">
<view class="content-list-view">
<view class="content-list">
物料号
<text style="margin-left: 20rpx;">{{item.code}}</text>
</view>
<view class="content-list">
物料名称
<text style="margin-left: 20rpx;">{{item.name}}</text>
</view>
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
</view>
<view class="content-list">
使用数量
<text style="margin-left: 20rpx;">{{item.amount}}</text>
</view>
</view>
</view>
</view>
<!-- 支架 -->
<view class="content">
<view class="content-title">
<view class="content-title-flex">
支架
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{supportList}}" wx:key="index">
<view class="content-list-view">
<view class="content-list">
物料号
<text style="margin-left: 20rpx;">{{item.code}}</text>
</view>
<view class="content-list">
物料名称
<text style="margin-left: 20rpx;">{{item.name}}</text>
</view>
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
</view>
<view class="content-list">
使用数量
<text style="margin-left: 20rpx;">{{item.amount}}</text>
</view>
</view>
</view>
</view>
<!-- 逆变器 -->
<view class="content">
<block wx:for="{{nbqList}}" wx:key="pIndex" wx:for-index="pIndex" wx:for-item="pitem">
<view class="content-title">
<view class="content-title-flex">
逆变器(<block wx:if="{{pitem.materialModel}}">{{pitem.materialModel}}|</block>{{pitem.model}}+{{pitem.num}}台)
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{converterList}}" wx:for-index="cIndex" wx:key="index" wx:if="{{item.spec == pitem.model && item.model == pitem.materialModel}}">
<view class="content-list-view">
<view class="content-list">
物料品牌
<text style="margin-left: 20rpx;">{{item.materialBrand}}</text>
</view>
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
</view>
<view class="nbq-code-box" wx:for="{{item.itemList}}" wx:for-item="itemList" wx:key="index">
<view class="content-list">
<view class="content-title-item" style="margin-left: 20rpx;">SN码</view>
<input type="text" class="content-input" placeholder="" model:value="{{itemList.nbqSn}}" data-type="nbqSn" data-way="input" data-cind="{{cIndex}}" data-ind="{{index}}" disabled />
</view>
<view class="content-list" wx:if="{{item.materialBrand=='固德威' || item.materialBrand=='爱士惟'}}">
<view class="content-title-item" style="margin-left: 20rpx;">验证码</view>
<input type="text" class="content-input" placeholder="" model:value="{{itemList.yzCode}}" data-type="sn" data-way="input" data-cind="{{cIndex}}" data-ind="{{index}}" disabled />
</view>
<view class="content-list">
<view class="content-title-item" style="margin-left: 20rpx;">通讯棒SN码</view>
<input type="text" class="content-input" placeholder="" model:value="{{itemList.sn}}" data-way="input" data-type="sn" data-cind="{{cIndex}}" data-ind="{{index}}" disabled />
</view>
</view>
</view>
</view>
</block>
</view>
<!-- 组件 -->
<view class="content">
<view class="content-title">
<view class="content-title-flex">
组件(<block wx:if="{{zjMap.materialModel}}">{{zjMap.materialModel}}|</block>{{zjMap.model}}Wp+{{zjMap.num}}片)
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{componentList}}" wx:key="index">
<view class="content-list-view">
<!-- <view class="content-list">
物料号
<text style="margin-left: 20rpx;">{{item.code}}</text>
</view>
<view class="content-list">
物料名称
<text style="margin-left: 20rpx;">{{item.name}}</text>
</view> -->
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
Wp
</view>
<view class="content-list">
物料条码
</view>
<view class="content-list" wx:for="{{item.itemList}}" wx:for-item="itemList" wx:key="index">
<view style="flex: 1; margin-left: 20rpx;">{{index+1}}{{itemList.barcode}}</view>
</view>
</view>
</view>
</view>

@ -0,0 +1,2 @@
/* home/components/install/install.wxss */
@import "../../pages/install/install";

@ -0,0 +1,43 @@
// home/components/install/install.js
Component({
/**
* 组件的属性列表
*/
properties: {
detailObj: Object,
cagesList: Array,
supportList: Array,
converterList: Array,
componentList: Array,
productList: Array,
// nbqList: Array,
// zjMap: Object
},
/**
* 组件的初始数据
*/
data: {
tabIndex: '0',
},
ready(){
this.setData({
capitalId: this.data.detailObj.management,
projectList: this.data.detailObj.projectList,
})
// console.log(1212, this.data)
},
/**
* 组件的方法列表
*/
methods: {
//tab切换
changeTab(e){
let index = e.currentTarget.dataset.index
this.setData({
tabIndex: index
})
}
}
})

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

@ -0,0 +1,149 @@
<!--home/components/install/install.wxml-->
<!-- <view class="content-list-warehouse">
<view class="content-address-warehouse">
<picker bindchange="bindWarehourseList" range="{{warehourseList}}" range-key='name'>
<view class="content-picker-warehouse">
<text style="color: red;">*</text>所属仓库
<view style="flex: 1; margin-left: 20rpx;">
{{warehourseName}}
</view>
<image src="../../img/arrow.png" class="content-img-right-warehouse" />
</view>
</picker>
</view>
</view> -->
<!-- 多产品分类 -->
<view class="detail-tab">
<view wx:for="{{productList}}" wx:key="index" class="{{tabIndex == index?'active':''}}" data-index="{{index}}" bind:tap="changeTab">
{{item.roofType}}
<view wx:if="{{tabIndex ==index}}" class="actived"></view>
</view>
</view>
<!-- 并网箱 -->
<view class="content">
<view class="content-title">
<view class="content-title-flex">
并网箱
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{cagesList}}" wx:key="index" wx:if="{{item.projectId == productList[tabIndex].projectId}}">
<view class="content-list-view">
<view class="content-list">
物料号
<text style="margin-left: 20rpx;">{{item.code}}</text>
</view>
<view class="content-list">
物料名称
<text style="margin-left: 20rpx;">{{item.name}}</text>
</view>
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
</view>
<view class="content-list">
使用数量
<text style="margin-left: 20rpx;">{{item.amount}}</text>
</view>
</view>
</view>
</view>
<!-- 支架 -->
<view class="content">
<view class="content-title">
<view class="content-title-flex">
支架
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{supportList}}" wx:key="index" wx:if="{{item.projectId == productList[tabIndex].projectId}}">
<view class="content-list-view">
<view class="content-list">
物料号
<text style="margin-left: 20rpx;">{{item.code}}</text>
</view>
<view class="content-list">
物料名称
<text style="margin-left: 20rpx;">{{item.name}}</text>
</view>
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
</view>
<view class="content-list">
使用数量
<text style="margin-left: 20rpx;">{{item.amount}}</text>
</view>
</view>
</view>
</view>
<!-- 逆变器 -->
<view class="content">
<block wx:for="{{productList[tabIndex].nbqMap}}" wx:key="pIndex" wx:for-index="pIndex" wx:for-item="pitem">
<view class="content-title">
<view class="content-title-flex">
逆变器(<block wx:if="{{pitem.materialModel}}">{{pitem.materialModel}}|</block>{{pitem.model}}+{{pitem.num}}台)
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{converterList}}" wx:for-index="cIndex" wx:key="index" wx:if="{{item.spec == pitem.model && item.model == pitem.materialModel && item.projectId == productList[tabIndex].projectId}}">
<view class="content-list-view">
<view class="content-list">
物料品牌
<text style="margin-left: 20rpx;">{{item.materialBrand}}</text>
</view>
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
</view>
<view class="nbq-code-box" wx:for="{{item.itemList}}" wx:for-item="itemList" wx:key="index" wx:if="{{itemList.projectId == productList[tabIndex].projectId}}">
<view class="content-list">
<view class="content-title-item" style="margin-left: 20rpx;">SN码</view>
<input type="text" class="content-input" placeholder="" model:value="{{itemList.nbqSn}}" data-type="nbqSn" data-way="input" data-cind="{{cIndex}}" data-ind="{{index}}" disabled />
</view>
<view class="content-list" wx:if="{{item.materialBrand=='固德威' || item.materialBrand=='爱士惟'}}">
<view class="content-title-item" style="margin-left: 20rpx;">验证码</view>
<input type="text" class="content-input" placeholder="" model:value="{{itemList.yzCode}}" data-type="sn" data-way="input" data-cind="{{cIndex}}" data-ind="{{index}}" disabled />
</view>
<view class="content-list">
<view class="content-title-item" style="margin-left: 20rpx;">通讯棒SN码</view>
<input type="text" class="content-input" placeholder="" model:value="{{itemList.sn}}" data-way="input" data-type="sn" data-cind="{{cIndex}}" data-ind="{{index}}" disabled />
</view>
</view>
</view>
</view>
</block>
</view>
<!-- 组件 -->
<view class="content">
<view class="content-title">
<view class="content-title-flex">
组件(<block wx:if="{{productList[tabIndex].zjMap.materialModel}}">{{productList[tabIndex].zjMap.materialModel}}|</block>{{productList[tabIndex].zjMap.model}}Wp+{{productList[tabIndex].zjMap.num}}片)
</view>
</view>
<view class="content-line"></view>
<view class="content-list-view-delete" wx:for="{{componentList}}" wx:key="index" wx:if="{{item.projectId == productList[tabIndex].projectId}}">
<view class="content-list-view">
<view class="content-list">
物料规格
<text style="margin-left: 20rpx;">{{item.spec}}</text>
Wp
</view>
<view class="content-list">
物料条码
</view>
<view class="content-list" wx:for="{{item.itemList}}" wx:for-item="itemList" wx:key="index" wx:if="{{itemList.projectId == productList[tabIndex].projectId}}">
<view style="flex: 1; margin-left: 20rpx;">{{index+1}}{{itemList.barcode}}</view>
</view>
</view>
</view>
</view>

@ -0,0 +1,6 @@
/* home/components/install/install.wxss */
@import "../../pages/install/install";
.detail-tab{display: flex; justify-content: space-between; height: 90rpx; border-bottom: 1px solid #f0f0f0; color: #666666; background-color: #FFF;}
.detail-tab>view{flex: 1; text-align: center; line-height: 82rpx; font-size: 28rpx; position: relative;}
.detail-tab>view.active{color: #333333; font-size: 32rpx;}
.detail-tab>view .actived{width: 60rpx; height: 6rpx; background-color: #0a6597; border-radius: 3rpx; margin: 0 auto;}

@ -0,0 +1,177 @@
// home/components/onGrid/onGrid.js
const {
getFormSet,getProviceCodeList,IMG_BASE_URL
} = require('../../../api/api')
Component({
/**
* 组件的属性列表
*/
properties: {
photo: Object,
detailObj: Object,
detail: Object,
},
/**
* 组件的初始数据
*/
data: {
powerCompanyList:[],
contractFile: [],
contractVideoUrl: [],
otherAttachment: [],
},
ready(){
this.getProviceCodeList()
this.getFormSet()
},
/**
* 组件的方法列表
*/
methods: {
/** 获取自定义字段 */
getFormSet() {
getFormSet({
stage: '04', //01:信息登记,02踏勘设计,03电站安装,04电站并网
partner: this.data.detail.management,
}).then((res) => {
this.setData({
formSetObj: res.data.columns
})
let resp = this.data.detail
if (resp.contract) {//合同文件
let contractUrl = resp.contract ? resp.contract.split(",") : [];
contractUrl.forEach(itm=>{
this.data.contractFile.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
contractFile:resp.contract? this.data.contractFile: [],
})
}
if (resp.contract_video_url) {//合同视频
let contractVideoUrl = resp.contract_video_url ? resp.contract_video_url.split(",") : [];
contractVideoUrl.forEach(itm=>{
this.data.contractVideoUrl.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
contractVideoUrl:resp.contract_video_url? this.data.contractVideoUrl: [],
})
}
if (resp.other_attachment) {//补充资料
let url = resp.other_attachment ? resp.other_attachment.split(",") : [];
url.forEach(itm=>{
this.data.otherAttachment.push({
name:itm,
url:IMG_BASE_URL + itm
});
});
this.setData({
otherAttachment:resp.other_attachment? this.data.otherAttachment: [],
})
}
})
},
/** 选择电力公司 **/
bindpowerCompanyList(e) {
this.setData({
[`detail.powerCompanyName`]: this.data.powerCompanyList[e.detail.value].power_company,
[`detail.provinceCode`]: this.data.powerCompanyList[e.detail.value].code
})
},
/** 获取电力公司 **/
getProviceCodeList(e) {
getProviceCodeList({}).then((res) => {
if (res.code == 200) {
let list = res.data.map(itm=>itm.columns);
this.setData({
powerCompanyList: list
})
}
})
},
//打开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链接列表
})
}
}
},
//打开外链
openWeb(e){
wx.navigateTo({
url: '../webView/webView',
success: function (res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', {
data: e.currentTarget.dataset.path
})
}
})
},
//打开pdf文件或者大图查看图片
openDocument(res) {
let path = res.currentTarget.dataset.path
if (path) {
let suffix = path.substring(path.lastIndexOf('.') + 1) //获取文件后缀
if(suffix=='mp4'){// 开始预览多媒体内容
wx.previewMedia({
sources: [{
url :IMG_BASE_URL + path,
type: 'video'
}], // 需要预览的资源列表
});
}else if(suffix != 'jpg' && suffix != 'png' && suffix != 'gif' && suffix != 'jpeg') {
wx.showLoading({
title: '加载中',
})
wx.downloadFile({
url: IMG_BASE_URL + path,
complete: function (res) {
wx.hideLoading()
const filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
fileType: suffix,
showMenu: true,
success: function (res) {}
})
}
})
}else{
wx.previewImage({
urls: [IMG_BASE_URL + path] // 需要预览的图片http链接列表
})
}
}
},
}
})

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"van-uploader": "@vant/weapp/uploader/index"
}
}

@ -0,0 +1,282 @@
<!--home/components/onGrid/onGrid.wxml-->
<wxs src="/wxs/util.wxs" module="util"></wxs>
<!-- 并网信息 -->
<view class="content" style="margin-top: 0;">
<view class="content-list">
<view class="content-title-item">并网机构</view>
<view class="content-text">
<block wx:if="{{detail.grid_institution=='0'}}">国网</block>
<block wx:if="{{detail.grid_institution=='1'}}">南网</block>
</view>
</view>
<block wx:if="{{formSetObj.address_consistent.status =='1'}}">
<view class="content-list">
<view class="content-title-item">购售电地址是否一致</view>
<view class="content-text">
<block wx:if="{{detail.address_consistent=='Y'}}">是</block>
<block wx:if="{{detail.address_consistent=='N'}}">否</block>
</view>
</view>
</block>
<block wx:if="{{detail.address_consistent=='N'}}">
<block wx:if="{{formSetObj.electric_pca_address.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-address">
<view bind:tap="bindRegionChange">
<view class="content-picker">
<view class="content-title-item">购售电地址</view>
<view class="content-text" wx:if="{{detail.electric_province && detail.electric_city && detail.electric_area}}">
{{detail.electric_province}}{{detail.electric_city}}{{detail.electric_area}}
</view>
<!-- <view class="content-text content-text-gray" wx:else>
请选择地址
</view>
<image src="../../img/arrow.png" class="content-img-right" /> -->
</view>
</view>
<view class="content-inputs">
<input type="text" class="content-input" placeholder="" disabled model:value="{{detail.electric_address}}" />
</view>
</view>
</view>
</block>
</block>
<block wx:if="{{formSetObj.generator_no.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">发电户号</view>
<input type="text" class="content-input" placeholder="" model:value="{{detail.generator_no}}" disabled />
</view>
</block>
<block wx:if="{{formSetObj.db_imgs.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">电表照片</view>
<view class="content-img-box">
<view class="content-img-name">
<van-uploader file-list="{{photo.dbImgs}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="dbImgs" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.dbx_imgs.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">电表箱照片</view>
<view class="content-img-box">
<view class="content-img-name">
<van-uploader file-list="{{photo.dbxImgs}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="dbxImgs" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.tlzhjk_imgs.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">铜铝转换接头照片</view>
<view class="content-img-box">
<view class="content-img-name">
<van-uploader file-list="{{photo.tlzhjkImgs}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="dbxImgs" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</view>
</view>
</block>
<!-- <block wx:if="{{formSetObj.dbx_imgs_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">电表箱照片</view>
<view class="content-img-box">
<view class="content-img-name">
<van-uploader file-list="{{photo.dbxImgs}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="dbxImgs" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</view>
</view>
</block> -->
<block wx:if="{{formSetObj.archives_img.status =='1' && detail.grid_institution=='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">南网营销系统档案截图(三户)</view>
<view class="content-img-box">
<view class="content-img-name">
<van-uploader file-list="{{photo.archivesImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="archivesImg" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.power_capacity_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">三天连续发电量监控系统截图</view>
<view class="content-img-box">
<view class="content-img-name">
<van-uploader file-list="{{photo.powerCapacityUrl}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="powerCapacityUrl" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</view>
</view>
</block>
<!-- 国网 -->
<block wx:if="{{formSetObj.province_code.status =='1' && detail.grid_institution=='0'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">电力公司</view>
<view class="content-text" wx:if="{{detail.province_code_name}}">
{{detail.province_code_name}}
</view>
</view>
</block>
<!-- 南网 -->
<block wx:if="{{formSetObj.province_code_hand.status =='1' && detail.grid_institution=='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">电力公司</view>
<view class="content-text" wx:if="{{detail.province_code_hand}}">
{{detail.province_code_hand}}
</view>
</view>
</block>
<block wx:if="{{formSetObj.power_plant_code.status =='1' && detail.grid_institution=='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">电厂编码</view>
<input type="text" class="content-input" model:value="{{detail.power_plant_code}}" disabled />
</view>
</block>
<block wx:if="{{formSetObj.yx_img.status =='1' || formSetObj.geb_img.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网照片</view>
<view class="content-img-box">
<block wx:if="{{formSetObj.yx_img.status =='1'}}">
<view class="content-img-name">
<view class="content-attention-text" bindtap="viewNote" data-tit="电站运行信息" data-msg="监控后台逆变器连续三天的日发电量截图">
<view class="content-attention-showText">近3天发电量</view>
<!-- <image src="../../img/attention.png" class="content-attention" mode="aspectFit" /> -->
</view>
<van-uploader file-list="{{photo.yxImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="yxImg" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj.geb_img.status =='1'}}">
<view class="content-img-name">
<view class="content-attention-text" bindtap="viewNote" data-tit="补充信息" data-msg="其他细节照片可根据需要自行增加">
<view class="content-attention-showText">补充信息</view>
<!-- <image src="../../img/attention.png" class="content-attention" mode="aspectFit" /> -->
</view>
<van-uploader file-list="{{photo.gebImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="gebImg" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</block>
<block wx:if="{{formSetObj.geb_img2.status =='1'}}">
<view class="content-img-name">
<view class="content-attention-text" bindtap="viewNote" data-tit="补充信息2" data-msg="其他细节照片可根据需要自行增加">
<view class="content-attention-showText">补充信息2</view>
<!-- <image src="../../img/attention.png" class="content-attention" mode="aspectFit" /> -->
</view>
<van-uploader file-list="{{photo.gebImg2}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="gebImg2" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</block>
</view>
</view>
</block>
<block wx:if="{{formSetObj.contract.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">购售电合同</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{contractFile}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj.contract_video_url.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">购售电合同视频</view>
<view class="content-img-box">
<view class="content-img-name">
<van-uploader accept="video" file-list="{{contractVideoUrl}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" data-type="contractVideoUrl" preview-size="150rpx" preview-image preview-full-image max-count="1">
</van-uploader>
</view>
</view>
</view>
</block>
<block wx:if="{{formSetObj.other_attachment.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item" style="width: 380rpx;">资方审查补充资料1-10</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{otherAttachment}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<!-- 保险 -->
<block wx:if="{{detail.insurance}}">
<block wx:if="{{formSetObj.bwts_file.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网调试报告</view>
<text style="color: blue;" bindtap="openDocument" data-path="{{detail.insurance.bwtsFile}}">查看</text>
</view>
</block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">保险名称</view>
<text wx:if="{{detail.insuranceName}}">{{detail.insuranceName}}</text>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">保险公司</view>
<text class="content-input" wx:if="{{detail.insurance.insuranceCompany}}">{{detail.insurance.insuranceCompany}}</text>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">第一受益人</view>
<text class="content-input" wx:if="{{detail.insurance.firstBeneficiary}}">{{detail.insurance.firstBeneficiary}}</text>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">保险编号</view>
<input type="text" class="content-input" placeholder="" disabled model:value="{{detail.insurance.insuranceNumber}}" />
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">投保金额</view>
<input type="text" class="content-input" placeholder="" disabled model:value="{{detail.insurance.insuranceAmount}}" />
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">保险日期</view>
<view class="content-text" wx:if="{{detail.insurance.insuranceDateFrom&&detail.insurance.insuranceDateTo}}">{{detail.insurance.insuranceDateFrom}} - {{detail.insurance.insuranceDateTo}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">保险单</view>
<text style="color: blue;" bindtap="openDocument" wx:if="{{detail.insurance.insurancePolicy}}" data-path="{{detail.insurance.insurancePolicy}}">查看</text>
</view>
</block>
</view>
<!-- 省市区街道选择器 -->
<region showRegion="{{showRegion}}" bind:chooseRegion="chooseRegion"></region>
<van-dialog id="van-dialog" />
<!-- 日期区间选择 -->
<van-calendar
show="{{ dateShow }}"
type="range"
bind:confirm="dateConfirm"
bind:close="dateFn"
/>

@ -0,0 +1,7 @@
/* home/components/onGrid/onGrid.wxss */
@import "../../pages/bwForm/bwForm.wxss";
/** 文件上传样式 **/
.txt-upload{flex: 1; color: blue; font-size: 24rpx; width: 100%;}
.txt-upload-list{ display: flex; justify-content: space-between; margin:4rpx 0 20rpx;}
.txt-upload-list text:first-child{flex: 1; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;}
.txt-upload-list text:last-child{width: 80rpx; margin-left: 20rpx;}

@ -0,0 +1,600 @@
const {
getAllDictionarySelect,
IMG_BASE_URL,
WU_TU_PIAN_URL,
getAllConditionList,
findAllPlan,getKcFormSet
} = require('../../../api/api')
Component({
properties: {
entryId: String,
childObj:Object,
},
data: {
photo: {
flyImgs: [], //无人机航拍图
roofPhotoOne:[],//安装区域整体照片
roofPhotoTwo:[],//安装区域东南角照片
roofPhotoThree:[],//安装区域西南角照片
roofPhotoFour:[],//安装区域正南照片
roofPhotoFive:[],//安装区域细节照片
roofPhotoFacade:[],//房屋内部结构照片
roofPhotoInterior:[],//房屋内部环境照片
detailSupplementOne:[],//逆变器、配电箱预安装位置照片
houseSupplementOne:[],//房屋其他障碍物照片
surveyVideo:[],//踏勘补充证明视频
surveyFiles:[],//踏勘记录表
vrRoofOne: [], //房屋整体图
vrRoofTwo: [], //房屋整体俯视图
vrRoofThree: [], //房屋内部结构图
vrRoofFour: [], //入户全景照片
houseOutlinePhoto:[], //房屋轮廓照片
designDrawings: [], //设计图纸
dzImgs: [], //组合图
},
photoTips:[
{
showKey: 'fly_imgs',
key:'flyImgs',
num:9,
minNum:3,
title: '无人机航拍图',
},{
showKey: 'roof_photo_one',
key:'roofPhotoOne',
num:9,
minNum:2,
title: '安装区域整体照片',
},{
showKey: 'roof_photo_two',
key:'roofPhotoTwo',
num:9,
minNum:1,
title: '安装区域东南角照片',
},{
showKey: 'roof_photo_four',
key:'roofPhotoFour',
num:9,
minNum:1,
title: '安装区域正南照片',
},{
showKey: 'roof_photo_three',
key:'roofPhotoThree',
num:9,
minNum:1,
title: '安装区域西南角照片',
},{
showKey: 'roof_photo_five',
key:'roofPhotoFive',
num:9,
minNum:1,
title: '安装区域细节照片',
},{
showKey: 'roof_photo_interior',
key:'roofPhotoInterior',
num:9,
minNum:2,
title: '房屋内部环境照片',
},{
showKey: 'roof_photo_facade',
key:'roofPhotoFacade',
num:9,
minNum:2,
title: '房屋内部结构照片',
},{
showKey: 'detail_supplement_one',
key:'detailSupplementOne',
num:9,
minNum:1,
title: '逆变器、配电箱预安装位置照片',
},{
showKey: 'house_outline_photo',
key: 'houseOutlinePhoto',
num: 9,
minNum: 1,
title: '房屋轮廓照片',
},{
showKey: 'house_supplement_one',
key:'houseSupplementOne',
num:9,
minNum:1,
title: '房屋其他障碍物照片',
},{
showKey: 'survey_files',
key:'surveyFiles',
num:4,
title: '踏勘记录表',
},{
showKey: 'roof_photo_one_03',
key: 'roofPhotoOne',
num: 9,
minNum: 2,
title: '房屋屋顶照片',
},{
showKey: 'roof_photo_two_03',
key: 'roofPhotoTwo',
num: 9,
minNum: 1,
title: '房屋屋顶东侧图片',
},{
showKey: 'roof_photo_three_03',
key: 'roofPhotoThree',
num: 9,
minNum: 1,
title: '房屋屋顶西侧图片',
},{
showKey: 'roof_photo_four_03',
key: 'roofPhotoFour',
num: 9,
minNum: 1,
title: '房屋屋顶南侧图片',
},{
showKey: 'fw_img3',
key: 'fwImg3',
num: 9,
minNum: 1,
title: '房屋屋顶东南侧图片',
},{
showKey: 'fw_img4',
key: 'fwImg4',
num: 9,
minNum: 1,
title: '房屋屋顶西南侧图片',
},{
showKey: 'fw_img5',
key: 'fwImg5',
num: 9,
minNum: 1,
title: '遮阴物与房屋距离、高度',
},{
showKey: 'survey_video',
key: 'surveyVideo',
num: 8,
minNum: 1,
title: '踏勘补充证明视频',
},{
showKey: 'house_ownership',
key: 'houseOwnership',
num: 8,
minNum: 1,
title: '房产证明',
},{
showKey: 'survey_files_03',
key: 'surveyFiles',
num: 9,
minNum: 1,
title: '户用勘察记录表(附平面草图)',
},{
showKey: 'fw_img1',
key: 'fwImg1',
num: 9,
minNum: 1,
title: '房屋整体图',
},{
showKey: 'vr_roof_one',
key: 'vrRoofOne',
num: 9,
minNum: 1,
title: '房屋整体图VR全景',
},{
showKey: 'vr_roof_two',
key: 'vrRoofTwo',
num: 9,
minNum: 1,
title: '房屋整体俯视图(无人机)',
},{
showKey: 'vr_roof_three',
key: 'vrRoofThree',
num: 9,
minNum: 1,
title: '房屋内部结构图VR',
},{
showKey: 'fw_img2',
key: 'fwImg2',
num: 9,
minNum: 1,
title: '房屋内部结构图',
},{
showKey: 'vr_roof_four',
key: 'vrRoofFour',
num: 9,
minNum: 1,
title: '入户全景照片(VR)',
},{
showKey: 'fly_imgs_04',
key: 'flyImgs',
num: 9,
minNum: 3,
title: '屋顶高空俯视照片',
},{
showKey: 'roof_photo_two_04',
key: 'roofPhotoTwo',
num: 9,
minNum: 1,
title: '屋顶东南照片',
},{
showKey: 'roof_photo_four_04',
key: 'roofPhotoFour',
num: 9,
minNum: 1,
title: '屋顶正南照片',
},{
showKey: 'roof_photo_three_04',
key: 'roofPhotoThree',
num: 9,
minNum: 1,
title: '屋顶西南照片',
},{
showKey: 'vr_roof_four_04',
key: 'vrRoofFour',
num: 9,
minNum: 1,
title: '入户全景照片',
},{
showKey: 'survey_files_04',
key: 'surveyFiles',
num: 4,
title: '现场勘测表',
}],
formSetObj: {}, //自定义字段
standardSolutionsList:[],//标准方案初始数量
combinedSolutionsList:[],//组合方案初始数量
planList:[],//方案
gridType: '0',
gfRoofTypeList: []
},
ready(){
this.findAllPlan();
this.entryDetail();
},
methods:{
/** 获取自定义字段 */
getFormSet(partner) {
getAllConditionList({
partner: partner,
}).then((res) => {
this.setData({
formSetObj: res.data
})
})
if(partner == '03'){
getKcFormSet().then((res) => {
if(res.data){
this.setData({
gfRoofTypeList: res.data, //广发--屋顶类型数据集合
})
}
})
}
},
//屋顶类型对应显示字段
roofTypeToColumn(name){
this.data.gfRoofTypeList.forEach(item=>{
if(name == item.roofType){
let selectRoofType = item.forms.map(itm=>{return itm.columns});
let roofTypeAllColumn = {}
selectRoofType.forEach(item2=>{
roofTypeAllColumn[item2.column_key] = {
status: 1,
must_fill_flag: item2.must_fill_flag
}
})
// console.log(555, roofTypeAllColumn)
this.setData({
roofTypeAllColumn
})
}
})
},
/*** 获取字典 */
getDictionaryList(partner, callback) {
getAllDictionarySelect({
capitalId: partner,
}).then((res) => {
if(res.data){
this.setData({
angleAzimuthSel: res.data.angle_azimuth.map(item=>item.columns), //方位角
})
}
if(callback) callback(res.data)
})
},
/** 获取电站详情 **/
entryDetail(e) {
let that = this
let res = JSON.parse(JSON.stringify(this.data.childObj));
// 组件,逆变器,并网箱,支架
var componentNum = 0;
var componentList = [];
var converterList = [];
var cagesList = [];
var zhijList = [];
if (res.componentList.length > 0) {
for (let i = 0; i < res.componentList.length; i++) {
const element = res.componentList[i];
var OB = {
id: "",
num: "", //数量
model: "", //名称
addType: 0,
}
if (element.item_type == 3) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
OB.material_model = element.material_model;
componentNum = element.num * element.model + componentNum
componentList.push(OB)
} else if (element.item_type == 1) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
OB.material_model = element.material_model;
converterList.push(OB)
} else if (element.item_type == 2) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
cagesList.push(OB)
} else if (element.item_type == 4) {
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
zhijList.push(OB)
}
}
}
//保险购买情况
if (res.insurance_flag == 1) {
this.setData({
insuranceName: "控制投放及续保"
})
} else if (res.insurance_flag == 2) {
this.setData({
insuranceName: "控制投放"
})
} else if (res.insurance_flag == 3) {
this.setData({
insuranceName: "其他"
})
}
//方案信息-方案类型
if (res.scheme_type == 1) {//标准方案
this.setData({
[`standardSolutionsList[0].id`]: res.scheme_id ? res.scheme_id : '',
[`standardSolutionsList[0].type`]: res.scheme_type_name ? res.scheme_type_name : '',
[`standardSolutionsList[0].typeId`]: res.scheme_type_id ? res.scheme_type_id : '',
[`standardSolutionsList[0].name`]: res.scheme_name ? res.scheme_name : "",
})
} else if (res.scheme_type == 2) {//组合方案
if (res.composePlanList.length > 0) {
var combinedSolutionsList = []
for (let i = 0; i < res.composePlanList.length; i++) {
var combinedSolutionsListOB = {}
const element = res.composePlanList[i];
if (i == 0) {
combinedSolutionsListOB.addType = 1;
}
combinedSolutionsListOB.code = element.code;
combinedSolutionsListOB.id = element.planId;
combinedSolutionsListOB.name = element.name;
combinedSolutionsListOB.type = element.planType;
combinedSolutionsListOB.planTypeId = element.planTypeId;
for (let i = 0; i < that.data.planList.length; i++) {
const planTypeObj = that.data.planList[i];
if (planTypeObj.allPlan.length > 0) {
for (let j = 0; j < planTypeObj.allPlan.length; j++) {
const plan = planTypeObj.allPlan[j];
if (plan.id == element.planId) {
combinedSolutionsListOB.pickerIndex = i
}
}
}
}
combinedSolutionsList.push(combinedSolutionsListOB)
}
this.setData({
combinedSolutionsList: combinedSolutionsList
})
}
}
this.setData({
detail: res,
id: res.id, //修改数据的时候传此ID
projectId: res.project_id,
tenant_type: res.tenant_type=='1' ? '个人' : '单位',//1.个人2单位
//业主信息参数
name: res.tenant_name,
phone: res.mobile,
provinceName: res.province,
cityName: res.city,
areaName: res.area,
address: res.address,
//项目信息
capitalId: res.zfId, //资方Id
capitalName: res.zfName, //资方
projectName: res.projectName,//产品名称
companyName: res.project_company_name,//项目公司
filingName: res.filing_type=='1' ? '农户备案' : '项目公司备案',//备案类型
leaseDate: res.leaseDate ? res.leaseDate : '',//预计投放日
repaymentMethod: res.repayment_method,//划转方式
//如果租金划转方式是二类卡,那么二类卡的信息 显示这个
secCardName:res.secCardName ? res.secCardName : '',//二类卡账户名
secCardNo:res.secCardNo ? res.secCardNo : '',//二类卡账号
secBankNumber:res.secBankNumber ? res.secBankNumber : '',//二类卡联行号
bankName: res.bank_name ? res.bank_name : '', //卡账号名称
bankCode: res.bank_code ? res.bank_code : '', //卡账号
tssBankNum: res.tss_bank_num ? res.tss_bank_num : '', //卡开户行
longitude: res.longitude, //经度
latitude: res.latitude, //纬度
//房屋信息
roofType: res.roof_type,
sealRoof:res.seal_roof,//是否封屋顶1是2.否
completionYear:res.completion_year ? res.completion_year : '',//房屋建成年份
slopeGradient:res.slope_gradient ? res.slope_gradient : '',//屋面坡度
purlineInterval:res.purline_interval ? res.purline_interval : '',//檀条间距
waterproof:res.waterproof ? res.waterproof : '',//屋顶防水情况
sourcePollution:res.source_pollution ? res.source_pollution : '',//是否有污染源
opsCondition:res.ops_condition ? res.ops_condition : '',//是否具备运维空间
voltageClasses:res.voltage_classes ? res.voltage_classes : '',//并网电压等级
transformerCapacity:res.transformer_capacity ? res.transformer_capacity : '',//变压器容量
restrictFlag:res.restrict_flag ? res.restrict_flag : '',//是否符合变压器容量限制要求
dipAngle:res.dip_angle ? res.dip_angle : '',//组件倾角
roofArea: res.roof_area, //屋顶面积
deg: res.distance,//配电箱至并网点距离
height: res.building_height,//建筑高度
azimuth: res.azimuth ? res.azimuth : 1,//方位角
directionDeg: res.angle,//方位角
ewLength: res.ew_length, //东西长
nsWide: res.ns_wide, //南北宽
roofFaceThickness: res.roof_face_thickness,//屋面板厚度
structureType: res.structure_type,//结构类型
siteSlope: res.site_slope,//场地坡度
groundType: res.ground_type,//地面类型
geologicalCondition: res.geological_condition,//地质情况
fenceHeight: res.fence_height,//围墙高度
//房屋信息-图片
[`photo.flyImgs`]:res.fly_imgs ? res.fly_imgs.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//无人机航拍图
[`photo.roofPhotoOne`]:res.roof_photo_one ? res.roof_photo_one.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域整体照片
[`photo.roofPhotoTwo`]:res.roof_photo_two ? res.roof_photo_two.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域东南角照片
[`photo.roofPhotoThree`]:res.roof_photo_three ? res.roof_photo_three.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域西南角照片
[`photo.roofPhotoFour`]:res.roof_photo_four ? res.roof_photo_four.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域正南照片
[`photo.roofPhotoFive`]:res.roof_photo_five ? res.roof_photo_five.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域细节照片
[`photo.roofPhotoInterior`]:res.roof_photo_interior ? res.roof_photo_interior.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋内部环境照片
[`photo.roofPhotoFacade`]:res.roof_photo_facade ? res.roof_photo_facade.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋内部结构照片
[`photo.detailSupplementOne`]:res.detail_supplement_one ? res.detail_supplement_one.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//逆变器、配电箱预安装位置照片
[`photo.houseSupplementOne`]:res.house_supplement_one ? res.house_supplement_one.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋其他障碍物照片
[`photo.surveyVideo`]:res.survey_video ? res.survey_video.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//踏勘补充证明视频
[`photo.houseOwnership`]:res.house_ownership ? res.house_ownership.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [],//房产证
[`photo.surveyFiles`]:res.survey_files ? res.survey_files.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [],//踏勘记录表
[`photo.vrRoofOne`]: res.vr_roof_one ? res.vr_roof_one.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋整体图VR全景
[`photo.vrRoofTwo`]: res.vr_roof_two ? res.vr_roof_two.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋整体俯视图VR
[`photo.vrRoofThree`]: res.vr_roof_three ? res.vr_roof_three.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋内部结构图VR
[`photo.vrRoofFour`]: res.vr_roof_four ? res.vr_roof_four.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //入户全景照片(VR)
[`photo.houseOutlinePhoto`]: res.house_outline_photo ? res.house_outline_photo.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋轮廓照片
//方案信息
componentNum: (componentNum/1000).toFixed(3),//设计安装容量
componentList: componentList,//组件
converterList: converterList,//逆变器
cagesList: cagesList,//并网箱
zhijList: zhijList,//支架
schemeType: res.scheme_type ? res.scheme_type : 1,//设计方案
solutionRemark: res.scheme_remarks ? res.scheme_remarks : '',//方案备注
[`photo.designDrawings`]: res.design_drawings ? res.design_drawings.split(",").map(itm => {
return {
name: itm,
url: IMG_BASE_URL + itm
}
}) : [], //设计图纸
'photo.zjpbImg': res.zjpb_img ? res.zjpb_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件排布图
'photo.zjzxImg': res.zjzx_img ? res.zjzx_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件接线图
'photo.zjcsImg': res.zjcs_img ? res.zjcs_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件支架图
'photo.zjhsImg': res.zjhs_img ? res.zjhs_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //电气图
// [`photo.nbqwzImg[0].url`]: res.nbqwz_img ? IMG_BASE_URL + res.nbqwz_img : WU_TU_PIAN_URL,
// [`photo.pdxwzImg[0].url`]: res.pdxwz_img ? IMG_BASE_URL + res.pdxwz_img : WU_TU_PIAN_URL,
[`photo.dzImgs`]: res.dz_imgs ? res.dz_imgs.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//组合图
//2024-9-4 广发
'photo.fwImg1': res.fw_img1 ? res.fw_img1.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋整体图
'photo.fwImg2': res.fw_img2 ? res.fw_img2.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋内部结构图
'photo.fwImg3': res.fw_img3 ? res.fw_img3.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋屋顶东南侧图片
'photo.fwImg4': res.fw_img4 ? res.fw_img4.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋屋顶西南侧图片
'photo.fwImg5': res.fw_img5 ? res.fw_img5.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //遮阴物与房屋距离、高度
});
//并网方式处理
if(res.recordBoxHistory){
if(res.recordBoxHistory ==''){//并网方式没选择过,默认‘单户并网’
this.setData({
// gridType: '0',//并网方式
boxTotalCount: '', //总数
boxGroupNum: '', //编号
boxGroupName: '', //名称
})
}else{
this.setData({
gridType: res.recordBoxHistory.type,//并网方式
gridStatus: res.recordBoxHistory.status,//状态为1不能编辑
boxTotalCount: res.recordBoxHistory.total_count,
boxGroupNum: res.recordBoxHistory.group_number,
boxGroupName: res.recordBoxHistory.group_name,
boxGroupId: res.recordBoxHistory.box_group_id,
})
}
}
// console.log("photo",this.data.photo);
this.getFormSet(res.management)
//下拉字典
this.getDictionaryList(res.management, (res2)=>{
let angleList = res2.angle_azimuth.map(item=>item.columns)
if(res.azimuth){
let azimuthName = angleList.find(itm => itm.dict_key === res.azimuth).dict_value;
this.setData({
azimuthName
})
}
});
setTimeout(()=>{
if(res.management == '03' && res.roof_type !=''){
this.roofTypeToColumn(res.roof_type)
}
},500)
},
/** 获取方案类型和方案名称 **/
findAllPlan(e) {
let that = this
findAllPlan({
}).then((res) => {
for (let i = 0; i < res.length; i++) {
res[i].allPlan = JSON.parse(res[i].allPlan)
for (let j = 0; j < res[i].allPlan.length; j++) {
var element = res[i].allPlan[j].columns;
res[i].allPlan[j] = element
}
}
that.setData({
planList: res,
})
})
},
//打开pdf文件或者大图查看图片
openDocument(res) {
let path = res.currentTarget.dataset.path
if (path) {
let suffix = path.substring(path.lastIndexOf('.') + 1) //获取文件后缀
if(suffix=='mp4'){// 开始预览多媒体内容
wx.previewMedia({
sources: [{
url :IMG_BASE_URL + path,
type: 'video'
}], // 需要预览的资源列表
});
}else if(suffix != 'jpg' && suffix != 'png' && suffix != 'gif' && suffix != 'jpeg') {
wx.showLoading({
title: '加载中',
})
wx.downloadFile({
url: IMG_BASE_URL + path,
complete: function (res) {
wx.hideLoading()
const filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
fileType: suffix,
showMenu: true,
success: function (res) {}
})
}
})
}else{
wx.previewImage({
urls: [IMG_BASE_URL + path] // 需要预览的图片http链接列表
})
}
}
},
}
})

@ -0,0 +1,5 @@
{
"usingComponents": {
"van-uploader": "@vant/weapp/uploader/index"
}
}

@ -0,0 +1,795 @@
<wxs src="/wxs/util.wxs" module="util"></wxs>
<!-- 项目信息 -->
<view class="content" style="margin-top: 0;">
<block>
<view class="content-list">
<view class="content-title-item">投资方</view>
<view>{{capitalName}}</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-address">
<view class="content-picker">
<view class="content-title-item">安装地址</view>
<view class="content-text">
{{provinceName}}<block wx:if="{{provinceName != cityName}}">{{cityName}}</block>{{areaName}}
</view>
</view>
<view class="content-inputs">{{address}}</view>
</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<text style="color: red; visibility: hidden;">*</text>
<view class="content-title-item">风压</view>
<view>{{detail.wind_pressure}}kN/㎡</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<text style="color: red; visibility: hidden;">*</text>
<view class="content-title-item">雪压</view>
<view>{{detail.snow_pressure}}kN/㎡</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<text style="color: red; visibility: hidden;">*</text>
<view class="content-title-item">风雪压等级</view>
<view>{{detail.pressure_level}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].longitude.status =='1' || formSetObj['02'].latitude.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">经纬度</view>
<view class="content-text" wx:if="{{longitude}}">
{{longitude}},{{latitude}}
</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">产品名称</view>
<view class="content-text">{{projectName}}</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">项目公司</view>
<view class="content-text">{{companyName}}</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">备案类型</view>
<view class="content-text">{{filingName}}</view>
</view>
</block>
<!-- <block wx:if="{{formSetObj['02'].insurance_flag.status =='1'}}">
<view class="content-list">
<view class="content-title-item">保险购买情况</view>
<text>{{insuranceName}}</text>
</view>
</block> -->
<block wx:if="{{formSetObj['02'].lease_date.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">预计投放日</view>
<text>{{leaseDate}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].repayment_method.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">划转方式</view>
<text>
<block wx:if="{{repaymentMethod=='1'}}">二类卡</block>
<!-- <block wx:if="{{repaymentMethod==2}}">光E宝</block> -->
<block wx:if="{{repaymentMethod=='0'}}">其他</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].repayment_method.status =='1' && repaymentMethod==1}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">二类卡账户名</view>
<view>{{secCardName}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">二类卡号</view>
<view>{{secCardNo}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">联行号</view>
<view>{{secBankNumber}}</view>
</view>
</block>
</view>
<!-- 房屋信息 -->
<view class="content">
<view class="content-title">房屋信息</view>
<block wx:if="{{capitalId == '03'}}">
<block wx:if="{{formSetObj['02'].roof_type.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶类型</view>
<text>{{roofType}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].seal_roof.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否封屋顶</view>
<text>{{sealRoof==1?'是':'否'}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].completion_year_03.status =='1' && roofTypeAllColumn['completion_year']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">建筑年限</view>
<text>{{completionYear}} 年</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].angle_azimuth.status =='1' && roofTypeAllColumn['angle_azimuth']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方位角</view>
<text>{{azimuthName}}<block wx:if="{{azimuth!=1 && azimuth!=10 && azimuth!=11 && azimuth!=12 && directionDeg }}"> {{directionDeg}} 度</block></text>
</view>
</block>
<block wx:if="{{formSetObj['02'].building_height.status =='1' && roofTypeAllColumn['building_height']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">建筑高度</view>
<text>{{height}} 米</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ew_length.status =='1' && roofTypeAllColumn['ew_length']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">东西长</view>
<text>{{ewLength}} 米</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ns_wide.status =='1' && roofTypeAllColumn['ns_wide']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">南北宽</view>
<text>{{nsWide}} 米</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].roof_face_thickness.status =='1' && roofTypeAllColumn['roof_face_thickness']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋面板厚度</view>
<text>{{roofFaceThickness}} mm</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].structure_type.status =='1' && roofTypeAllColumn['structure_type']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">结构类型</view>
<text>{{structureType}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].site_slope.status =='1' && roofTypeAllColumn['site_slope']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">场地坡度</view>
<text>{{siteSlope}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ground_type.status =='1' && roofTypeAllColumn['ground_type']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">地面类型</view>
<text>{{groundType}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].geological_condition.status =='1' && roofTypeAllColumn['geological_condition']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">地质情况</view>
<text>{{geologicalCondition}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].fence_height.status =='1' && roofTypeAllColumn['fence_height']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">围墙高度</view>
<text>{{fenceHeight}} 米</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].waterproof.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶防水情况</view>
<text>
<block wx:if="{{waterproof==1}}">一般</block>
<block wx:if="{{waterproof==2}}">良好</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].source_pollution.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否有污染源</view>
<text>
<block wx:if="{{sourcePollution==1}}">有</block>
<block wx:if="{{sourcePollution==2}}">没有</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ops_condition.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否具备运维空间</view>
<text>
<block wx:if="{{opsCondition==1}}">具备</block>
<block wx:if="{{opsCondition==2}}">不具备</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].voltage_classes.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网电压等级</view>
<text>{{voltageClasses}} V</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].dip_angle_03.status =='1' && roofTypeAllColumn['dip_angle']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">倾角</view>
<text>{{dipAngle}} 度</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].roof_area.status =='1' && roofTypeAllColumn['roof_area']}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶面积</view>
<text>{{roofArea}} m2</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].transformer_capacity.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">变压器容量</view>
<text>{{transformerCapacity}} kVA</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].restrict_flag.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否符合变压器容量限制要求</view>
<text>
<block wx:if="{{restrictFlag==1}}">符合</block>
<block wx:if="{{restrictFlag==2}}">不符合</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].distance.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">配电箱至并网点距离</view>
<text>{{deg}} 米</text>
</view>
</block>
</block>
<block wx:else>
<block wx:if="{{formSetObj['02'].box_group_set.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网方式</view>
<label class="content-radio">
<radio-group bindchange="radioChangeGridType">
<radio value="0" checked="{{gridType==='0'}}" disabled />单户并网
<radio value="1" checked="{{gridType==='1'}}" disabled />一户多站
<radio value="2" checked="{{gridType==='2'}}" disabled />整村汇流
</radio-group>
</label>
</view>
<block wx:if="{{gridType>0}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">本组电站个数</view>
<input type="number" class="content-input" placeholder="请输入" value="{{boxTotalCount}}" data-name="boxTotalCount" disabled />
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">汇流组编号</view>
<input type="digit" class="content-input" placeholder="" value="{{boxGroupNum}}" data-name="boxGroupNum" disabled />
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">汇流组名称</view>
<input type="digit" class="content-input" placeholder="" value="{{boxGroupName}}" data-name="boxGroupName" disabled/>
</view>
</block>
</block>
<block wx:if="{{formSetObj['02'].roof_type.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶类型</view>
<text>{{roofType}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].seal_roof.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否封屋顶</view>
<text>{{sealRoof==1?'是':'否'}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].completion_year.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">房屋建成年份</view>
<text>{{completionYear}} 年</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].angle_azimuth.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方位角</view>
<text>{{azimuthName}}<block wx:if="{{azimuth!=1 && azimuth!=10 && azimuth!=11 && azimuth!=12 && directionDeg }}"> {{directionDeg}} 度</block></text>
</view>
</block>
<block wx:if="{{formSetObj['02'].building_height.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">建筑高度</view>
<text>{{height}} 米</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ew_length.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">东西长</view>
<text>{{ewLength}} 米</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ns_wide.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">南北宽</view>
<text>{{nsWide}} 米</text>
</view>
</block>
<block wx:if="{{roofType==='斜屋顶'}}">
<block wx:if="{{formSetObj['02'].slope_gradient.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋面坡度</view>
<text>{{slopeGradient}} 度</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].purline_interval.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">檀条间距</view>
<text>{{purlineInterval}} 米</text>
</view>
</block>
</block>
<block wx:if="{{formSetObj['02'].waterproof.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶防水情况</view>
<text>
<block wx:if="{{waterproof==1}}">一般</block>
<block wx:if="{{waterproof==2}}">良好</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].source_pollution.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否有污染源</view>
<text>
<block wx:if="{{sourcePollution==1}}">有</block>
<block wx:if="{{sourcePollution==2}}">没有</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ops_condition.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否具备运维空间</view>
<text>
<block wx:if="{{opsCondition==1}}">具备</block>
<block wx:if="{{opsCondition==2}}">不具备</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].voltage_classes.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网电压等级</view>
<text>{{voltageClasses}} V</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].transformer_capacity.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">变压器容量</view>
<text>{{transformerCapacity}} kVA</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].restrict_flag.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否符合变压器容量限制要求</view>
<text>
<block wx:if="{{restrictFlag==1}}">符合</block>
<block wx:if="{{restrictFlag==2}}">不符合</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].distance.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">配电箱至并网点距离</view>
<text>{{deg}} 米</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].dip_angle.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件倾角</view>
<text>{{dipAngle}} 度</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].dip_angle_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">倾角</view>
<text>{{dipAngle}} 度</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].roof_area.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶面积</view>
<text>{{roofArea}} m2</text>
</view>
</block>
</block>
<!-- 房屋信息-图片 -->
<block>
<view class="content-line"></view>
<view class="photo-content">
<view class="photo-box" wx:for="{{photoTips}}" wx:key="index" wx:if="{{formSetObj['02'][item.showKey].status =='1'}}">
<view class="tit">
<view>{{item.title}}
<block wx:if="{{formSetObj['02'][item.showKey].mustFillFlag =='1'}}">
<block wx:if="{{item.num!=1}}">{{item.minNum ? item.minNum : 1}} - {{item.num}}</block>
<block wx:else>{{item.num}}</block>
</block>
<block wx:else>最多{{item.num}}</block>
张)</view>
</view>
<view class="img-box">
<block wx:if="{{item.key == 'surveyFiles'}}">
<view class="txt-upload" wx:if="{{photo[item.key].length}}">
<view wx:for="{{photo[item.key]}}" wx:key="childIndex" wx:for-key="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
<view wx:else>无</view>
</block>
<block wx:elif="{{item.key == 'surveyVideo'}}">
<van-uploader accept="video" file-list="{{photo[item.key]}}" data-name="{{item.key}}" max-count="{{photo[item.key].length}}" disabled deletable="{{false}}">
</van-uploader>
</block>
<block wx:else>
<van-uploader capture="{{['capture']}}" file-list="{{photo[item.key]}}" data-name="{{item.key}}" preview-size="150rpx" preview-image preview-full-image disabled deletable="{{false}}" max-count="{{photo[item.key].length}}">
<image src="../../img/img-base.png" class="content-img" />
</van-uploader>
</block>
</view>
</view>
</view>
</block>
</view>
<!-- 方案信息 -->
<view class="content">
<view class="content-title">方案信息</view>
<!-- <block wx:if="{{formSetObj['02'].scheme_type.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">设计方案</view>
<text>
<block wx:if="{{schemeType==1}}">标准方案</block>
<block wx:if="{{schemeType==2}}">组合方案</block>
</text>
</view>
</block> -->
<!-- 标准方案 -->
<!-- <view wx:if="{{schemeType==1}}"> -->
<view>
<view wx:for="{{standardSolutionsList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].scheme_type_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方案类型</view>
<view>{{item.type}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].scheme_name.status =='1'}}">
<view class="content-list">
<view class="content-title-item">方案名称</view>
<view>{{item.name}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].attach.status =='1'}}">
<view class="content-list">
<view class="content-title-item">参考图纸</view>
<view style="color: blue; ">
<view bindtap="openDocument" data-path="{{drawing.path}}" wx:for="{{util.referenceDrawing(item,planList)}}" wx:for-item="drawing" wx:key="index">{{drawing.name}}</view>
</view>
</view>
</block>
</view>
</view>
<!-- 组合方案 -->
<!-- <view wx:if="{{schemeType==2}}">
<view wx:for="{{combinedSolutionsList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].scheme_type_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方案类型</view>
<view>{{item.type}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].scheme_name.status =='1'}}">
<view class="content-list">
<view class="content-title-item">方案名称</view>
<view>{{item.name}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].attach.status =='1'}}">
<view class="content-list">
<view class="content-title-item">参考图纸</view>
<view style="color: blue;">
<view bindtap="openDocument" data-path="{{drawing.path}}" wx:for="{{util.referenceDrawing(item,planList)}}" wx:for-item="drawing" wx:key="index">{{drawing.name}}</view>
</view>
</view>
</block>
</view>
</view> -->
<!-- 设计图纸 -->
<block wx:if="{{formSetObj['02'].design_drawings.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">设计图纸</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{photo.designDrawings}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].design_drawings_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">设计CAD文件</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{photo.designDrawings}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjpb_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件排布图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{photo.zjpbImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjzx_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组串接线图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{photo.zjzxImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjcs_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件支架图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{photo.zjcsImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjhs_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item" style="width: 260rpx;">一次接线图/电气图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{photo.zjhsImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<!-- 组合图 -->
<!-- <block wx:if="{{formSetObj['02'].dz_imgs.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<van-uploader file-list="{{photo.dzImgs}}" data-name="dzImgs" bind:after-read="afteruploadPhotoRead" bind:delete="deleteImg" preview-size="150rpx" preview-image preview-full-image max-count="{{photo.dzImgs.length}}" disabled deletable="{{false}}">
<image src="../../img/img-base.png" class="content-img {{formSetObj['02'].dz_imgs.mustFillFlag =='1'&&photo.dzImgs.length < 1?'must':''}}" />
</van-uploader>
</view>
</block> -->
<!-- <block wx:if="{{formSetObj['02'].zjpb_img.status =='1' || formSetObj['02'].zjzx_img.status =='1' || formSetObj['02'].zjcs_img.status =='1' || formSetObj['02'].zjhs_img.status =='1' || formSetObj['02'].nbqwz_img.status =='1' || formSetObj['02'].pdxwz_img.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view style="visibility: hidden;">
<text>*</text>
<view class="content-title-item"></view>
</view>
<view class="content-img-box">
<block wx:if="{{formSetObj['02'].zjpb_img.status =='1'}}">
<van-uploader file-list="{{photo.zjpbImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].zjzx_img.status =='1'}}">
<van-uploader file-list="{{photo.zjzxImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].zjcs_img.status =='1'}}">
<van-uploader file-list="{{photo.zjcsImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].zjhs_img.status =='1'}}">
<van-uploader file-list="{{photo.zjhsImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].nbqwz_img.status =='1'}}">
<van-uploader file-list="{{photo.nbqwzImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].pdxwz_img.status =='1'}}">
<van-uploader file-list="{{photo.pdxwzImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
</view>
</view>
</block> -->
<!-- 设计方案 -->
<block wx:if="{{formSetObj['02'].design_capacity.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">设计安装容量</view>
<text>{{componentNum}}</text>
kW
</view>
</block>
<!-- 组件 -->
<view wx:for="{{componentList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component3.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}">Wp</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component3_model.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件</view>
<view style="flex: 1;">
{{item.material_model}}
<text wx:if="{{item.material_model}}">Wp</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component3_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">组件数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled data-type="1" value="{{item.num}}" data-index="{{index}}" />
</view>
</block>
</view>
<!-- 逆变器 -->
<view wx:for="{{converterList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component1.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">逆变器</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component1_model.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">逆变器</view>
<view style="flex: 1;">
{{item.material_model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component1_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">逆变器数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled value="{{item.num}}" data-type="2" data-index="{{index}}" />
</view>
</block>
</view>
<!-- 并网箱 -->
<view wx:for="{{cagesList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component2.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网箱</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component2_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">并网箱数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled data-type="3" value="{{item.num}}" data-index="{{index}}" />
</view>
</block>
</view>
<!-- 支架 -->
<view wx:for="{{zhijList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component4.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">支架</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component4_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">支架数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled data-type="4" value="{{item.num}}" data-index="{{index}}" />
</view>
</block>
</view>
<block wx:if="{{formSetObj['02'].scheme_remarks.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方案备注</view>
<input type="text" class="content-input" disabled model:value="{{solutionRemark}}" />
</view>
</block>
</view>

@ -0,0 +1 @@
@import "/home/pages/entryInfoAudit/entryInfoAudit.wxss";

@ -0,0 +1,701 @@
const {
getAllDictionarySelect,
IMG_BASE_URL,
WU_TU_PIAN_URL,
getAllConditionList,
findAllPlan
} = require('../../../api/api')
Component({
properties: {
entryId: String,
childObj:Object,
},
data: {
photo: {
flyImgs: [], //无人机航拍图
roofPhotoOne:[],//安装区域整体照片
roofPhotoTwo:[],//安装区域东南角照片
roofPhotoThree:[],//安装区域西南角照片
roofPhotoFour:[],//安装区域正南照片
roofPhotoFive:[],//安装区域细节照片
roofPhotoFacade:[],//房屋内部结构照片
roofPhotoInterior:[],//房屋内部环境照片
detailSupplementOne:[],//逆变器、配电箱预安装位置照片
houseSupplementOne:[],//房屋其他障碍物照片
surveyVideo:[],//踏勘补充证明视频
surveyFiles:[],//踏勘记录表
vrRoofOne: [], //房屋整体图
vrRoofTwo: [], //房屋整体俯视图
vrRoofThree: [], //房屋内部结构图
vrRoofFour: [], //入户全景照片
houseOutlinePhoto:[], //房屋轮廓照片
designDrawings: [], //设计图纸
dzImgs: [], //组合图
},
photoTips:[
{
showKey: 'fly_imgs',
key:'flyImgs',
num:9,
minNum:3,
title: '无人机航拍图',
},{
showKey: 'roof_photo_one',
key:'roofPhotoOne',
num:9,
minNum:2,
title: '安装区域整体照片',
},{
showKey: 'roof_photo_two',
key:'roofPhotoTwo',
num:9,
minNum:1,
title: '安装区域东南角照片',
},{
showKey: 'roof_photo_four',
key:'roofPhotoFour',
num:9,
minNum:1,
title: '安装区域正南照片',
},{
showKey: 'roof_photo_three',
key:'roofPhotoThree',
num:9,
minNum:1,
title: '安装区域西南角照片',
},{
showKey: 'roof_photo_five',
key:'roofPhotoFive',
num:9,
minNum:1,
title: '安装区域细节照片',
},{
showKey: 'roof_photo_interior',
key:'roofPhotoInterior',
num:9,
minNum:2,
title: '房屋内部环境照片',
},{
showKey: 'roof_photo_facade',
key:'roofPhotoFacade',
num:9,
minNum:2,
title: '房屋内部结构照片',
},{
showKey: 'detail_supplement_one',
key:'detailSupplementOne',
num:9,
minNum:1,
title: '逆变器、配电箱预安装位置照片',
},{
showKey: 'house_outline_photo',
key: 'houseOutlinePhoto',
num: 9,
minNum: 1,
title: '房屋轮廓照片',
},{
showKey: 'house_supplement_one',
key:'houseSupplementOne',
num:9,
minNum:1,
title: '房屋其他障碍物照片',
},{
showKey: 'survey_files',
key:'surveyFiles',
num:4,
title: '踏勘记录表',
},{
showKey: 'roof_photo_one_03',
key: 'roofPhotoOne',
num: 9,
minNum: 2,
title: '房屋屋顶照片',
},{
showKey: 'roof_photo_two_03',
key: 'roofPhotoTwo',
num: 9,
minNum: 1,
title: '房屋屋顶东侧图片',
},{
showKey: 'roof_photo_three_03',
key: 'roofPhotoThree',
num: 9,
minNum: 1,
title: '房屋屋顶西侧图片',
},{
showKey: 'roof_photo_four_03',
key: 'roofPhotoFour',
num: 9,
minNum: 1,
title: '房屋屋顶南侧图片',
},{
showKey: 'fw_img3',
key: 'fwImg3',
num: 9,
minNum: 1,
title: '房屋屋顶东南侧图片',
},{
showKey: 'fw_img4',
key: 'fwImg4',
num: 9,
minNum: 1,
title: '房屋屋顶西南侧图片',
},{
showKey: 'fw_img5',
key: 'fwImg5',
num: 9,
minNum: 1,
title: '遮阴物与房屋距离、高度',
},{
showKey: 'survey_video',
key: 'surveyVideo',
num: 8,
minNum: 1,
title: '踏勘补充证明视频',
},{
showKey: 'house_ownership',
key: 'houseOwnership',
num: 8,
minNum: 1,
title: '房产证明',
},{
showKey: 'survey_files_03',
key: 'surveyFiles',
num: 9,
minNum: 1,
title: '户用勘察记录表(附平面草图)',
},{
showKey: 'fw_img1',
key: 'fwImg1',
num: 9,
minNum: 1,
title: '房屋整体图',
},{
showKey: 'vr_roof_one',
key: 'vrRoofOne',
num: 9,
minNum: 1,
title: '房屋整体图VR全景',
},{
showKey: 'vr_roof_two',
key: 'vrRoofTwo',
num: 9,
minNum: 1,
title: '房屋整体俯视图(无人机)',
},{
showKey: 'vr_roof_three',
key: 'vrRoofThree',
num: 9,
minNum: 1,
title: '房屋内部结构图VR',
},{
showKey: 'fw_img2',
key: 'fwImg2',
num: 9,
minNum: 1,
title: '房屋内部结构图',
},{
showKey: 'vr_roof_four',
key: 'vrRoofFour',
num: 9,
minNum: 1,
title: '入户全景照片(VR)',
},{
showKey: 'fly_imgs_04',
key: 'flyImgs',
num: 9,
minNum: 3,
title: '屋顶高空俯视照片',
},{
showKey: 'roof_photo_two_04',
key: 'roofPhotoTwo',
num: 9,
minNum: 1,
title: '屋顶东南照片',
},{
showKey: 'roof_photo_four_04',
key: 'roofPhotoFour',
num: 9,
minNum: 1,
title: '屋顶正南照片',
},{
showKey: 'roof_photo_three_04',
key: 'roofPhotoThree',
num: 9,
minNum: 1,
title: '屋顶西南照片',
},{
showKey: 'vr_roof_four_04',
key: 'vrRoofFour',
num: 9,
minNum: 1,
title: '入户全景照片',
},{
showKey: 'survey_files_04',
key: 'surveyFiles',
num: 4,
title: '现场勘测表',
}],
formSetObj: {}, //自定义字段
standardSolutionsList:[],//标准方案初始数量
combinedSolutionsList:[],//组合方案初始数量
planList:[],//方案
gridType: '0',
tabIndex: '0',
productList: [],
multiPhoto: [], //多产品图片
// multiPhotoTips: [],//多产品图片
multiScheme:[],//多产品方案
multiComponentList:[],//多产品组件
},
ready(){
this.findAllPlan();
this.entryDetail();
},
methods:{
/** 获取自定义字段 */
getFormSet(partner) {
getAllConditionList({
partner: partner,
}).then((res) => {
this.setData({
formSetObj: res.data
})
})
},
/*** 获取字典 */
getDictionaryList(partner, callback) {
getAllDictionarySelect({
capitalId: partner,
}).then((res) => {
if(res.data){
this.setData({
angleAzimuthSel: res.data.angle_azimuth.map(item=>item.columns), //方位角
})
}
if(callback) callback(res.data)
})
},
/** 获取电站详情 **/
entryDetail(e) {
let that = this
let res = JSON.parse(JSON.stringify(this.data.childObj));
//华融资方--多产品分开显示
let productList = res.projectDetailList //产品集合
let multiPhoto = []
let multiScheme = []
//拆分成多产品
productList.forEach((item,index)=>{
//多产品图片处理
multiPhoto.push(this.data.photo)
multiScheme.push({
standardSolutionsListIndex: 0,
standardSolutionsList: [{
projectId: item.projectId, //产品ID
type: "", //方案类型
name: "", //方案名称
id: "", //方案ID
code: "", //方案编号
drawing: "", //参考图纸
}]
})
// 添加图片
this.setData({
multiComponentList: this.data.multiComponentList,
multiScheme: this.data.multiScheme,
// multiScheme, //方案信息默认值
[`multiPhoto[${index}].dipAngle`]:item.dipAngle,//组件倾角
[`multiPhoto[${index}].zjpbImg`]: item.zjpbImg ? item.zjpbImg.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件排布图
[`multiPhoto[${index}].zjzxImg`]: item.zjzxImg ? item.zjzxImg.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件接线图
[`multiPhoto[${index}].zjcsImg`]: item.zjcsImg ? item.zjcsImg.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件支架图
[`multiPhoto[${index}].zjhsImg`]: item.zjhsImg ? item.zjhsImg.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //电气图
[`multiPhoto[${index}].dzImgs`]: item.dzImgs ? item.dzImgs.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//组合图
//房屋信息
[`multiPhoto[${index}].flyImgs`]:item.flyImgs ? item.flyImgs.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//无人机航拍图
[`multiPhoto[${index}].roofPhotoOne`]:item.roofPhotoOne ? item.roofPhotoOne.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域整体照片
[`multiPhoto[${index}].roofPhotoTwo`]:item.roofPhotoTwo ? item.roofPhotoTwo.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域东南角照片
[`multiPhoto[${index}].roofPhotoThree`]:item.roofPhotoThree ? item.roofPhotoThree.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域西南角照片
[`multiPhoto[${index}].roofPhotoFour`]:item.roofPhotoFour ? item.roofPhotoFour.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域正南照片
[`multiPhoto[${index}].roofPhotoFive`]:item.roofPhotoFive ? item.roofPhotoFive.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域细节照片
[`multiPhoto[${index}].roofPhotoInterior`]:item.roofPhotoInterior ? item.roofPhotoInterior.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋内部环境照片
[`multiPhoto[${index}].roofPhotoFacade`]:item.roofPhotoFacade ? item.roofPhotoFacade.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋内部结构照片
[`multiPhoto[${index}].detailSupplementOne`]:item.detailSupplementOne ? item.detailSupplementOne.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//逆变器、配电箱预安装位置照片
[`multiPhoto[${index}].houseSupplementOne`]:item.houseSupplementOne ? item.houseSupplementOne.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋其他障碍物照片
[`multiPhoto[${index}].surveyVideo`]:item.surveyVideo ? item.surveyVideo.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//踏勘补充证明视频
[`multiPhoto[${index}].surveyFiles`]:item.surveyFiles ? item.surveyFiles.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [],//踏勘记录表
[`multiPhoto[${index}].vrRoofOne`]: item.vrRoofOne ? item.vrRoofOne.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋整体图VR全景
[`multiPhoto[${index}].vrRoofTwo`]: item.vrRoofTwo ? item.vrRoofTwo.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋整体俯视图VR
[`multiPhoto[${index}].vrRoofThree`]: item.vrRoofThree ? item.vrRoofThree.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋内部结构图VR
[`multiPhoto[${index}].vrRoofFour`]: item.vrRoofFour ? item.vrRoofFour.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //入户全景照片(VR)
[`multiPhoto[${index}].houseOutlinePhoto`]: item.houseOutlinePhoto ? item.houseOutlinePhoto.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋轮廓照片
[`multiPhoto[${index}].fwImg1`]: item.fwImg1 ? item.fwImg1.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋整体图
[`multiPhoto[${index}].fwImg2`]: item.fwImg2 ? item.fwImg2.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋内部结构图
[`multiPhoto[${index}].fwImg3`]: item.fwImg3 ? item.fwImg3.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋屋顶东南侧图片
[`multiPhoto[${index}].fwImg4`]: item.fwImg4 ? item.fwImg4.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋屋顶西南侧图片
[`multiPhoto[${index}].fwImg5`]: item.fwImg5 ? item.fwImg5.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //遮阴物与房屋距离、高度
});
if(item.addEntryReqDesignDetails.length>0){
this.setData({
[`multiPhoto[${index}].designDrawings`]: item.addEntryReqDesignDetails[0].designDrawings ? item.addEntryReqDesignDetails[0].designDrawings.split(",").map(itm => {return {name: itm, url: IMG_BASE_URL + itm} }) : [], //设计图纸
})
}else{
this.setData({
[`multiPhoto[${index}].designDrawings`]: [], //设计图纸
})
}
// 组件,逆变器,并网箱,支架
if (item.componentList.length > 0) {
var componentList = [];
var converterList = [];
var cagesList = [];
var zhijList = [];
var componentNum = 0;
for (let i = 0; i < item.componentList.length; i++) {
const element = item.componentList[i];
var OB = {
projectId: "", //产品ID
id: "",
num: "", //数量
model: "", //名称
addType: 0,
}
if (element.item_type == 3) {
OB.projectId = item.projectId;
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
OB.material_model = element.material_model;
componentNum = element.num * element.model + componentNum
componentList.push(OB)
} else if (element.item_type == 1) {
OB.projectId = item.projectId;
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
OB.material_model = element.material_model;
converterList.push(OB)
} else if (element.item_type == 2) {
OB.projectId = item.projectId;
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
cagesList.push(OB)
} else if (element.item_type == 4) {
OB.projectId = item.projectId;
OB.id = element.item_id;
OB.num = element.num;
OB.model = element.model;
zhijList.push(OB)
}
}
this.setData({
[`multiComponentList[${index}].componentList`]: componentList,
[`multiComponentList[${index}].converterList`]: converterList,
[`multiComponentList[${index}].cagesList`]: cagesList,
[`multiComponentList[${index}].zhijList`]: zhijList,
[`multiComponentList[${index}].productZj`]:item.assemblySpecs ? Number(item.assemblySpecs) : 0,//产品默认的组件值
[`multiComponentList[${index}].componentNum`]: (componentNum/1000).toFixed(3),
})
// console.log(126666, this.data.multiComponentList)
}else{
this.setData({
[`multiComponentList[${index}].componentList`]: [{
projectId: item.projectId, //产品ID
id: res.modeId ? res.modeId : '',//默认产品信息中的组件规格id
num: '', //数量
model: res.modeId ? item.assemblySpecs : '', //名称,默认产品信息中的组件规格
addType: 1,
}], //组件初始数量
[`multiComponentList[${index}].converterList`]: [{
projectId: item.projectId, //产品ID
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //逆变器初始数量
[`multiComponentList[${index}].cagesList`]: [{
projectId: item.projectId, //产品ID
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //并网箱初始数量
[`multiComponentList[${index}].zhijList`]: [{
projectId: item.projectId, //产品ID
id: "",
num: "", //数量
model: "", //名称
addType: 1,
}], //支架初始数量
[`multiComponentList[${index}].productZj`]: item.assemblySpecs ? Number(item.assemblySpecs) : 0,//产品默认的组件值
[`multiComponentList[${index}].componentNum`]: 0,
})
}
//方案信息-方案类型
if (res.scheme_type == 1) {//标准方案
// this.setData({
// [`standardSolutionsList[0].id`]: res.scheme_id ? res.scheme_id : '',
// [`standardSolutionsList[0].type`]: res.scheme_type_name ? res.scheme_type_name : '',
// [`standardSolutionsList[0].typeId`]: res.scheme_type_id ? res.scheme_type_id : '',
// [`standardSolutionsList[0].name`]: res.scheme_name ? res.scheme_name : "",
// })
if(productList[index].addEntryReqDesignDetails.length){
for (let i = 0; i < that.data.planList.length; i++) {
const element = that.data.planList[i];
if (productList[index].addEntryReqDesignDetails[0].schemeTypeId && (productList[index].addEntryReqDesignDetails[0].schemeTypeId == element.id)) {
this.setData({
[`multiScheme[${index}].standardSolutionsListIndex`]: i,
})
}
}
this.setData({
[`multiScheme[${index}].standardSolutionsList[0].projectId`]: productList[index].projectId,
[`multiScheme[${index}].standardSolutionsList[0].id`]: productList[index].addEntryReqDesignDetails[0].schemeId ? productList[index].addEntryReqDesignDetails[0].schemeId : '',
[`multiScheme[${index}].standardSolutionsList[0].type`]: productList[index].addEntryReqDesignDetails[0].schemeTypeName ? productList[index].addEntryReqDesignDetails[0].schemeTypeName : '',
[`multiScheme[${index}].standardSolutionsList[0].typeId`]: productList[index].addEntryReqDesignDetails[0].schemeTypeId ? productList[index].addEntryReqDesignDetails[0].schemeTypeId : '',
[`multiScheme[${index}].standardSolutionsList[0].name`]: productList[index].addEntryReqDesignDetails[0].schemeName ? productList[index].addEntryReqDesignDetails[0].schemeName : "",
})
}
} else if (res.scheme_type == 2) {//组合方案
if (res.composePlanList.length > 0) {
var combinedSolutionsList = []
for (let i = 0; i < res.composePlanList.length; i++) {
var combinedSolutionsListOB = {}
const element = res.composePlanList[i];
if (i == 0) {
combinedSolutionsListOB.addType = 1;
}
combinedSolutionsListOB.code = element.code;
combinedSolutionsListOB.id = element.planId;
combinedSolutionsListOB.name = element.name;
combinedSolutionsListOB.type = element.planType;
combinedSolutionsListOB.planTypeId = element.planTypeId;
for (let i = 0; i < that.data.planList.length; i++) {
const planTypeObj = that.data.planList[i];
if (planTypeObj.allPlan.length > 0) {
for (let j = 0; j < planTypeObj.allPlan.length; j++) {
const plan = planTypeObj.allPlan[j];
if (plan.id == element.planId) {
combinedSolutionsListOB.pickerIndex = i
}
}
}
}
combinedSolutionsList.push(combinedSolutionsListOB)
}
this.setData({
combinedSolutionsList: combinedSolutionsList
})
}
}
})
//保险购买情况
if (res.insurance_flag == 1) {
this.setData({
insuranceName: "控制投放及续保"
})
} else if (res.insurance_flag == 2) {
this.setData({
insuranceName: "控制投放"
})
} else if (res.insurance_flag == 3) {
this.setData({
insuranceName: "其他"
})
}
this.setData({
productList,
projectList: res.projectList,
multiComponentList: this.data.multiComponentList,
multiScheme: this.data.multiScheme,
id: res.id, //修改数据的时候传此ID
detail: res,
projectId: res.project_id,
tenant_type: res.tenant_type=='1' ? '个人' : '单位',//1.个人2单位
//业主信息参数
name: res.tenant_name,
phone: res.mobile,
provinceName: res.province,
cityName: res.city,
areaName: res.area,
address: res.address,
//项目信息
capitalName: res.zfName, //资方
projectName: res.projectName,//产品名称
companyName: res.project_company_name,//项目公司
filingName: res.filing_type=='1' ? '农户备案' : '项目公司备案',//备案类型
leaseDate: res.leaseDate ? res.leaseDate : '',//预计投放日
repaymentMethod: res.repayment_method,//划转方式
//如果租金划转方式是二类卡,那么二类卡的信息 显示这个
secCardName:res.secCardName ? res.secCardName : '',//二类卡账户名
secCardNo:res.secCardNo ? res.secCardNo : '',//二类卡账号
secBankNumber:res.secBankNumber ? res.secBankNumber : '',//二类卡联行号
bankName: res.bank_name ? res.bank_name : '', //卡账号名称
bankCode: res.bank_code ? res.bank_code : '', //卡账号
tssBankNum: res.tss_bank_num ? res.tss_bank_num : '', //卡开户行
longitude: res.longitude, //经度
latitude: res.latitude, //纬度
//房屋信息
roofType: res.roof_type,
sealRoof:res.seal_roof,//是否封屋顶1是2.否
completionYear:res.completion_year ? res.completion_year : '',//房屋建成年份
slopeGradient:res.slope_gradient ? res.slope_gradient : '',//屋面坡度
purlineInterval:res.purline_interval ? res.purline_interval : '',//檀条间距
waterproof:res.waterproof ? res.waterproof : '',//屋顶防水情况
sourcePollution:res.source_pollution ? res.source_pollution : '',//是否有污染源
opsCondition:res.ops_condition ? res.ops_condition : '',//是否具备运维空间
voltageClasses:res.voltage_classes ? res.voltage_classes : '',//并网电压等级
transformerCapacity:res.transformer_capacity ? res.transformer_capacity : '',//变压器容量
restrictFlag:res.restrict_flag ? res.restrict_flag : '',//是否符合变压器容量限制要求
dipAngle:res.dip_angle ? res.dip_angle : '',//组件倾角
roofArea: res.roof_area, //屋顶面积
deg: res.distance,//配电箱至并网点距离
height: res.building_height,//建筑高度
azimuth: res.azimuth ? res.azimuth : 1,//方位角
directionDeg: res.angle,//方位角
//房屋信息-图片
// [`photo.flyImgs`]:res.fly_imgs ? res.fly_imgs.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//无人机航拍图
// [`photo.roofPhotoOne`]:res.roof_photo_one ? res.roof_photo_one.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域整体照片
// [`photo.roofPhotoTwo`]:res.roof_photo_two ? res.roof_photo_two.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域东南角照片
// [`photo.roofPhotoThree`]:res.roof_photo_three ? res.roof_photo_three.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域西南角照片
// [`photo.roofPhotoFour`]:res.roof_photo_four ? res.roof_photo_four.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域正南照片
// [`photo.roofPhotoFive`]:res.roof_photo_five ? res.roof_photo_five.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//安装区域细节照片
// [`photo.roofPhotoInterior`]:res.roof_photo_interior ? res.roof_photo_interior.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋内部环境照片
// [`photo.roofPhotoFacade`]:res.roof_photo_facade ? res.roof_photo_facade.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋内部结构照片
// [`photo.detailSupplementOne`]:res.detail_supplement_one ? res.detail_supplement_one.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//逆变器、配电箱预安装位置照片
// [`photo.houseSupplementOne`]:res.house_supplement_one ? res.house_supplement_one.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//房屋其他障碍物照片
// [`photo.surveyVideo`]:res.survey_video ? res.survey_video.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//踏勘补充证明视频
// [`photo.houseOwnership`]:res.house_ownership ? res.house_ownership.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [],//房产证
// [`photo.surveyFiles`]:res.survey_files ? res.survey_files.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [],//踏勘记录表
// [`photo.vrRoofOne`]: res.vr_roof_one ? res.vr_roof_one.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋整体图VR全景
// [`photo.vrRoofTwo`]: res.vr_roof_two ? res.vr_roof_two.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋整体俯视图VR
// [`photo.vrRoofThree`]: res.vr_roof_three ? res.vr_roof_three.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋内部结构图VR
// [`photo.vrRoofFour`]: res.vr_roof_four ? res.vr_roof_four.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //入户全景照片(VR)
// [`photo.houseOutlinePhoto`]: res.house_outline_photo ? res.house_outline_photo.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [], //房屋轮廓照片
//方案信息
// componentNum: (componentNum/1000).toFixed(2),//设计安装容量
// componentList: componentList,//组件
// converterList: converterList,//逆变器
// cagesList: cagesList,//并网箱
// zhijList: zhijList,//支架
schemeType: res.scheme_type ? res.scheme_type : 1,//设计方案
solutionRemark: res.scheme_remarks ? res.scheme_remarks : '',//方案备注
// [`photo.designDrawings`]: res.design_drawings ? res.design_drawings.split(",").map(itm => {
// return {
// name: itm,
// url: IMG_BASE_URL + itm
// }
// }) : [], //设计图纸
// 'photo.zjpbImg': res.zjpb_img ? res.zjpb_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件排布图
// 'photo.zjzxImg': res.zjzx_img ? res.zjzx_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件接线图
// 'photo.zjcsImg': res.zjcs_img ? res.zjcs_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //组件支架图
// 'photo.zjhsImg': res.zjhs_img ? res.zjhs_img.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //电气图
// // [`photo.nbqwzImg[0].url`]: res.nbqwz_img ? IMG_BASE_URL + res.nbqwz_img : WU_TU_PIAN_URL,
// // [`photo.pdxwzImg[0].url`]: res.pdxwz_img ? IMG_BASE_URL + res.pdxwz_img : WU_TU_PIAN_URL,
// [`photo.dzImgs`]: res.dz_imgs ? res.dz_imgs.split(",").map(itm=>{return {name:itm, url:IMG_BASE_URL + itm}}) : [{url:WU_TU_PIAN_URL}],//组合图
// //2024-9-4 广发
// 'photo.fwImg1': res.fw_img1 ? res.fw_img1.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋整体图
// 'photo.fwImg2': res.fw_img2 ? res.fw_img2.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋内部结构图
// 'photo.fwImg3': res.fw_img3 ? res.fw_img3.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋屋顶东南侧图片
// 'photo.fwImg4': res.fw_img4 ? res.fw_img4.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //房屋屋顶西南侧图片
// 'photo.fwImg5': res.fw_img5 ? res.fw_img5.split(",").map(itm => {return {name: itm,url: IMG_BASE_URL + itm}}) : [], //遮阴物与房屋距离、高度
});
//并网方式处理
if(res.recordBoxHistory){
if(res.recordBoxHistory ==''){//并网方式没选择过,默认‘单户并网’
this.setData({
// gridType: '0',//并网方式
boxTotalCount: '', //总数
boxGroupNum: '', //编号
boxGroupName: '', //名称
})
}else{
this.setData({
gridType: res.recordBoxHistory.type,//并网方式
gridStatus: res.recordBoxHistory.status,//状态为1不能编辑
boxTotalCount: res.recordBoxHistory.total_count,
boxGroupNum: res.recordBoxHistory.group_number,
boxGroupName: res.recordBoxHistory.group_name,
boxGroupId: res.recordBoxHistory.box_group_id,
})
}
}
// console.log("photo",this.data.photo);
this.getFormSet(res.management)
//下拉字典
this.getDictionaryList(res.management, (res2)=>{
let angleList = res2.angle_azimuth.map(item=>item.columns)
if(res.azimuth){
let azimuthName = angleList.find(itm => itm.dict_key === res.azimuth).dict_value;
this.setData({
azimuthName
})
}
});
},
/** 获取方案类型和方案名称 **/
findAllPlan(e) {
let that = this
findAllPlan({
}).then((res) => {
for (let i = 0; i < res.length; i++) {
res[i].allPlan = JSON.parse(res[i].allPlan)
for (let j = 0; j < res[i].allPlan.length; j++) {
var element = res[i].allPlan[j].columns;
res[i].allPlan[j] = element
}
}
that.setData({
planList: res,
})
})
},
//打开pdf文件或者大图查看图片
openDocument(res) {
let path = res.currentTarget.dataset.path
if (path) {
let suffix = path.substring(path.lastIndexOf('.') + 1) //获取文件后缀
if(suffix=='mp4'){// 开始预览多媒体内容
wx.previewMedia({
sources: [{
url :IMG_BASE_URL + path,
type: 'video'
}], // 需要预览的资源列表
});
}else if(suffix != 'jpg' && suffix != 'png' && suffix != 'gif' && suffix != 'jpeg') {
wx.showLoading({
title: '加载中',
})
wx.downloadFile({
url: IMG_BASE_URL + path,
complete: function (res) {
wx.hideLoading()
const filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
fileType: suffix,
showMenu: true,
success: function (res) {}
})
}
})
}else{
wx.previewImage({
urls: [IMG_BASE_URL + path] // 需要预览的图片http链接列表
})
}
}
},
//tab切换
changeTab(e){
let index = e.currentTarget.dataset.index
this.setData({
tabIndex: index
})
}
}
})

@ -0,0 +1,5 @@
{
"usingComponents": {
"van-uploader": "@vant/weapp/uploader/index"
}
}

@ -0,0 +1,618 @@
<wxs src="/wxs/util.wxs" module="util"></wxs>
<!-- 项目信息 -->
<view class="content" style="margin-top: 0;">
<block>
<view class="content-list">
<view class="content-title-item">投资方</view>
<view>{{capitalName}}</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-address">
<view class="content-picker">
<view class="content-title-item">安装地址</view>
<view class="content-text">
{{provinceName}}<block wx:if="{{provinceName != cityName}}">{{cityName}}</block>{{areaName}}
</view>
</view>
<view class="content-inputs">{{address}}</view>
</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">风压</view>
<view>{{detail.wind_pressure}}kN/㎡</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">雪压</view>
<view>{{detail.snow_pressure}}kN/㎡</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">风雪压等级</view>
<view>{{detail.pressure_level}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].longitude.status =='1' || formSetObj['02'].latitude.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">经纬度</view>
<view class="content-text" wx:if="{{longitude}}">
{{longitude}},{{latitude}}
</view>
</view>
</block>
<!-- <block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">产品名称</view>
<view class="content-text">{{projectName}}</view>
</view>
</block> -->
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">项目公司</view>
<view class="content-text">{{companyName}}</view>
</view>
</block>
<block>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">备案类型</view>
<view class="content-text">{{filingName}}</view>
</view>
</block>
<!-- <block wx:if="{{formSetObj['02'].insurance_flag.status =='1'}}">
<view class="content-list">
<view class="content-title-item">保险购买情况</view>
<text>{{insuranceName}}</text>
</view>
</block> -->
<block wx:if="{{formSetObj['02'].lease_date.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">预计投放日</view>
<text>{{leaseDate}}</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].repayment_method.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">划转方式</view>
<text>
<block wx:if="{{repaymentMethod=='1'}}">二类卡</block>
<!-- <block wx:if="{{repaymentMethod==2}}">光E宝</block> -->
<block wx:if="{{repaymentMethod=='0'}}">其他</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['05'].repayment_method.status =='1' && repaymentMethod==1}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">二类卡账户名</view>
<view>{{secCardName}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">二类卡号</view>
<view>{{secCardNo}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">联行号</view>
<view>{{secBankNumber}}</view>
</view>
</block>
<block wx:for="{{projectList}}" wx:key="index">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">产品名称</view>
<view>{{item.projectName}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">产品编号</view>
<view>{{item.projectCode}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶类型</view>
<view>{{item.roofType}}</view>
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">租金支付周期</view>
<view class="content-text" wx:if="{{item.payCycle==1}}">按月支付</view>
<view class="content-text" wx:if="{{item.payCycle==2}}">按季支付</view>
<view class="content-text" wx:if="{{item.payCycle==3}}">按年支付</view>
</view>
</block>
</view>
<!-- 房屋信息 -->
<view class="content">
<view class="content-title">房屋信息</view>
<block wx:if="{{formSetObj['02'].box_group_set.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网方式</view>
<label class="content-radio">
<radio-group bindchange="radioChangeGridType">
<radio value="0" checked="{{gridType==='0'}}" disabled />单户并网
<radio value="1" checked="{{gridType==='1'}}" disabled />一户多站
<radio value="2" checked="{{gridType==='2'}}" disabled />整村汇流
</radio-group>
</label>
</view>
<block wx:if="{{gridType>0}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">本组电站个数</view>
<input type="number" class="content-input" placeholder="请输入" value="{{boxTotalCount}}" data-name="boxTotalCount" disabled />
<!-- <view bind:tap="goConverge" style="height: 50rpx; line-height: 50rpx; background: #0a6597; color: #FFF; padding: 1rpx 20rpx;" wx:if="{{gridType=='2' && gridStatus != '1'}}">选择</view> -->
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">汇流组编号</view>
<input type="digit" class="content-input" placeholder="" value="{{boxGroupNum}}" data-name="boxGroupNum" disabled />
</view>
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">汇流组名称</view>
<input type="digit" class="content-input" placeholder="" value="{{boxGroupName}}" data-name="boxGroupName" disabled/>
</view>
</block>
</block>
<!-- <block wx:if="{{formSetObj['02'].roof_type.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶类型</view>
<text>{{roofType}}</text>
</view>
</block> -->
<block wx:if="{{formSetObj['02'].seal_roof.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否封屋顶</view>
<text>{{sealRoof==1?'是':'否'}}</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].completion_year.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">房屋建成年份</view>
<text>{{completionYear}} 年</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].angle_azimuth.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方位角</view>
<text>{{azimuthName}}<block wx:if="{{azimuth!=1 && azimuth!=10 && azimuth!=11 && azimuth!=12 && directionDeg }}"> {{directionDeg}} 度</block></text>
</view>
</block>
<block wx:if="{{formSetObj['02'].building_height.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">建筑高度</view>
<text>{{height}} 米</text>
</view>
</block>
<block wx:if="{{roofType==='斜屋顶'}}">
<block wx:if="{{formSetObj['02'].slope_gradient.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋面坡度</view>
<text>{{slopeGradient}} 度</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].purline_interval.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">檀条间距</view>
<text>{{purlineInterval}} 米</text>
</view>
</block>
</block>
<block wx:if="{{formSetObj['02'].waterproof.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶防水情况</view>
<text>
<block wx:if="{{waterproof==1}}">一般</block>
<block wx:if="{{waterproof==2}}">良好</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].source_pollution.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否有污染源</view>
<text>
<block wx:if="{{sourcePollution==1}}">有</block>
<block wx:if="{{sourcePollution==2}}">没有</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].ops_condition.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否具备运维空间</view>
<text>
<block wx:if="{{opsCondition==1}}">具备</block>
<block wx:if="{{opsCondition==2}}">不具备</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].voltage_classes.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网电压等级</view>
<text>{{voltageClasses}} V</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].transformer_capacity.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">变压器容量</view>
<text>{{transformerCapacity}} kVA</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].restrict_flag.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">是否符合变压器容量限制要求</view>
<text>
<block wx:if="{{restrictFlag==1}}">符合</block>
<block wx:if="{{restrictFlag==2}}">不符合</block>
</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].distance.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">配电箱至并网点距离</view>
<text>{{deg}} 米</text>
</view>
</block>
<!-- <block wx:if="{{formSetObj['02'].dip_angle.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件倾角</view>
<text>{{dipAngle}} 度</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].dip_angle_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">倾角</view>
<text>{{dipAngle}} 度</text>
</view>
</block> -->
<block wx:if="{{formSetObj['02'].roof_area.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">屋顶面积</view>
<text>{{roofArea}} m2</text>
</view>
</block>
<!-- 房屋信息-图片 -->
<block>
<view class="content-line" style="height: 20rpx;"></view>
<!-- 多产品分类 -->
<view class="detail-tab">
<view wx:for="{{projectList}}" wx:key="index" class="{{tabIndex == index?'active':''}}" data-index="{{index}}" bind:tap="changeTab">
{{item.roofType}}
<view wx:if="{{tabIndex ==index}}" class="actived"></view>
</view>
</view>
<view class="content-line"></view>
<block>
<block wx:if="{{formSetObj['02'].dip_angle.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件倾角</view>
<text>{{multiPhoto[tabIndex].dipAngle}} 度</text>
</view>
</block>
<block wx:if="{{formSetObj['02'].dip_angle_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">倾角</view>
<text>{{multiPhoto[tabIndex].dipAngle}} 度</text>
</view>
</block>
</block>
<view class="photo-content">
<view class="photo-box" wx:for="{{photoTips}}" wx:key="index" wx:if="{{formSetObj['02'][item.showKey].status =='1'}}">
<view class="tit">
<view>{{item.title}}
<block wx:if="{{formSetObj['02'][item.showKey].mustFillFlag =='1'}}">
<block wx:if="{{item.num!=1}}">{{item.minNum ? item.minNum : 1}} - {{item.num}}</block>
<block wx:else>{{item.num}}</block>
</block>
<block wx:else>最多{{item.num}}</block>
张)</view>
</view>
<view class="img-box">
<block wx:if="{{item.key == 'surveyFiles'}}">
<view class="txt-upload" wx:if="{{multiPhoto[tabIndex][item.key].length}}">
<view wx:for="{{multiPhoto[tabIndex][item.key]}}" wx:key="childIndex" wx:for-key="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
<view wx:else>无</view>
</block>
<block wx:elif="{{item.key == 'surveyVideo'}}">
<van-uploader accept="video" file-list="{{multiPhoto[tabIndex][item.key]}}" data-name="{{item.key}}" max-count="{{multiPhoto[tabIndex][item.key].length}}" disabled deletable="{{false}}">
</van-uploader>
</block>
<block wx:else>
<van-uploader capture="{{['capture']}}" file-list="{{multiPhoto[tabIndex][item.key]}}" data-name="{{item.key}}" preview-size="150rpx" preview-image preview-full-image disabled deletable="{{false}}" max-count="{{multiPhoto[tabIndex][item.key].length}}">
<image src="../../img/img-base.png" class="content-img" />
</van-uploader>
</block>
</view>
</view>
</view>
</block>
</view>
<!-- 方案信息 -->
<view class="content">
<view class="content-title">方案信息</view>
<view>
<view wx:for="{{multiScheme[tabIndex].standardSolutionsList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].scheme_type_name.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方案类型</view>
<view>{{item.type}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].scheme_name.status =='1'}}">
<view class="content-list">
<view class="content-title-item">方案名称</view>
<view>{{item.name}}</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].attach.status =='1'}}">
<view class="content-list">
<view class="content-title-item">参考图纸</view>
<view style="color: blue; ">
<view bindtap="openDocument" data-path="{{drawing.path}}" wx:for="{{util.referenceDrawing(item,planList)}}" wx:for-item="drawing" wx:key="index">{{drawing.name}}</view>
</view>
</view>
</block>
</view>
</view>
<!-- 设计图纸 -->
<block wx:if="{{formSetObj['02'].design_drawings.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">设计图纸</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{multiPhoto[tabIndex].designDrawings}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].design_drawings_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">设计CAD文件</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{multiPhoto[tabIndex].designDrawings}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjpb_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件排布图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{multiPhoto[tabIndex].zjpbImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjzx_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组串接线图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{multiPhoto[tabIndex].zjzxImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjcs_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件支架图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{multiPhoto[tabIndex].zjcsImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].zjhs_img_03.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item" style="width: 260rpx;">一次接线图/电气图</view>
</view>
<view class="txt-upload" style="width: 100%; flex: unset; padding-left: 20rpx; padding-bottom: 1px; display: block;">
<view wx:for="{{multiPhoto[tabIndex].zjhsImg}}" wx:key="childIndex" wx:for-index="childIndex" wx:for-item="child" class="txt-upload-list">
<text bindtap="openDocument" data-path="{{child.name}}">{{util.formartFileName(child.name)}}</text>
</view>
</view>
</block>
<!-- 组合图 -->
<!-- <block wx:if="{{formSetObj['02'].dz_imgs.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<van-uploader file-list="{{photo.dzImgs}}" data-name="dzImgs" bind:after-read="afteruploadPhotoRead" bind:delete="deleteImg" preview-size="150rpx" preview-image preview-full-image max-count="{{photo.dzImgs.length}}" disabled deletable="{{false}}">
<image src="../../img/img-base.png" class="content-img {{formSetObj['02'].dz_imgs.mustFillFlag =='1'&&photo.dzImgs.length < 1?'must':''}}" />
</van-uploader>
</view>
</block> -->
<!-- <block wx:if="{{formSetObj['02'].zjpb_img.status =='1' || formSetObj['02'].zjzx_img.status =='1' || formSetObj['02'].zjcs_img.status =='1' || formSetObj['02'].zjhs_img.status =='1' || formSetObj['02'].nbqwz_img.status =='1' || formSetObj['02'].pdxwz_img.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view style="visibility: hidden;">
<text>*</text>
<view class="content-title-item"></view>
</view>
<view class="content-img-box">
<block wx:if="{{formSetObj['02'].zjpb_img.status =='1'}}">
<van-uploader file-list="{{photo.zjpbImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].zjzx_img.status =='1'}}">
<van-uploader file-list="{{photo.zjzxImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].zjcs_img.status =='1'}}">
<van-uploader file-list="{{photo.zjcsImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].zjhs_img.status =='1'}}">
<van-uploader file-list="{{photo.zjhsImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].nbqwz_img.status =='1'}}">
<van-uploader file-list="{{photo.nbqwzImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
<block wx:if="{{formSetObj['02'].pdxwz_img.status =='1'}}">
<van-uploader file-list="{{photo.pdxwzImg}}" bind:after-read="afteruploadPhotoRead" disabled deletable="{{false}}" preview-size="150rpx" preview-image preview-full-image max-count="1"></van-uploader>
</block>
</view>
</view>
</block> -->
<!-- 设计方案 -->
<block wx:if="{{formSetObj['02'].design_capacity.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">设计安装容量</view>
<text>{{multiComponentList[tabIndex].componentNum}}</text>
kW
</view>
</block>
<!-- 组件 -->
<view wx:for="{{multiComponentList[tabIndex].componentList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component3.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}">Wp</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component3_model.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">组件</view>
<view style="flex: 1;">
{{item.material_model}}
<text wx:if="{{item.material_model}}">Wp</text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component3_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">组件数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled data-type="1" value="{{item.num}}" data-index="{{index}}" />
</view>
</block>
</view>
<!-- 逆变器 -->
<view wx:for="{{multiComponentList[tabIndex].converterList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component1.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">逆变器</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component1_model.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">逆变器</view>
<view style="flex: 1;">
{{item.material_model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component1_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">逆变器数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled value="{{item.num}}" data-type="2" data-index="{{index}}" />
</view>
</block>
</view>
<!-- 并网箱 -->
<view wx:for="{{multiComponentList[tabIndex].cagesList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component2.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">并网箱</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component2_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">并网箱数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled data-type="3" value="{{item.num}}" data-index="{{index}}" />
</view>
</block>
</view>
<!-- 支架 -->
<view wx:for="{{multiComponentList[tabIndex].zhijList}}" wx:key="index">
<block wx:if="{{formSetObj['02'].component4.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">支架</view>
<view style="flex: 1;">
{{item.model}}
<text wx:if="{{item.model}}"></text>
</view>
</view>
</block>
<block wx:if="{{formSetObj['02'].component4_num.status =='1'}}">
<view class="content-list">
<view class="content-title-item">支架数量</view>
<input type="number" class="content-input" bindinput="inputNum" disabled data-type="4" value="{{item.num}}" data-index="{{index}}" />
</view>
</block>
</view>
<block wx:if="{{formSetObj['02'].scheme_remarks.status =='1'}}">
<view class="content-line"></view>
<view class="content-list">
<view class="content-title-item">方案备注</view>
<input type="text" class="content-input" disabled model:value="{{solutionRemark}}" />
</view>
</block>
</view>

@ -0,0 +1,5 @@
@import "/home/pages/entryInfoAuditHR/entryInfoAuditHR.wxss";
.detail-tab{display: flex; justify-content: space-between; height: 90rpx; border-bottom: 1px solid #f0f0f0; color: #666666;}
.detail-tab>view{flex: 1; text-align: center; line-height: 82rpx; font-size: 28rpx; position: relative;}
.detail-tab>view.active{color: #333333; font-size: 32rpx;}
.detail-tab>view .actived{width: 60rpx; height: 6rpx; background-color: #0a6597; border-radius: 3rpx; margin: 0 auto;}

@ -0,0 +1,56 @@
// home/components/userInfo/userInfo.js
Component({
/**
* 组件的属性列表
*/
properties: {
detail: Object,
type: String,
recordShow:Boolean,
},
/**
* 组件的初始数据
*/
data: {
},
ready(){
// console.log(1212, this.data)
},
/**
* 组件的方法列表
*/
methods: {
/** 用户信息跳转 **/
userFn(e){
// console.log('用户信息跳转', e)
wx.navigateTo({
url: '/home/pages/ownerForm/ownerForm?projectId=' + this.data.detail.entry_id + '&type='+this.data.type,
})
},
/** 拨打业主联系电话 **/
phoneFn(e) {
const phone = e.currentTarget.dataset.phone;
if (!phone) {
wx.showToast({
title: '暂无联系方式',
icon: 'none'
})
return
}
wx.makePhoneCall({
phoneNumber: phone,
})
},
//审批记录
goRecord(e){
wx.navigateTo({
url: '/pages/appRecord/appRecord?entryId=' + this.data.detail.id + '&type='+this.data.type,
})
}
}
})

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

@ -0,0 +1,42 @@
<!--home/components/userInfo/userInfo.wxml-->
<view class="content">
<view class="user-box">
<view class="user-list" catchtap="userFn">
<view class="bt">{{detail.tenant_name}}</view>
<view class="bd">
<text class="tag" wx:if="{{detail.tenant_type == '1'}}">个人</text>
<text class="tag" wx:if="{{detail.tenant_type == '2'}}">单位</text>
</view>
<image src="../../img/arrow.png" class="content-img-right" />
</view>
<view class="user-list">
<view class="bt">联系电话</view>
<view class="bd">{{detail.mobile}}</view>
<view class="tel" catchtap="phoneFn" data-phone="{{detail.mobile}}">
<image src="../../img/tel.png" />
拨打
</view>
</view>
<view class="user-list" wx:if="{{detail.tenant_type == '1'}}">
<view class="bt">身份证号</view>
<view class="bd">{{detail.id_code}}</view>
<view bind:tap="goRecord" class="record-btn">审批记录</view>
</view>
<view class="user-list" wx:if="{{detail.tenant_type == '2'}}">
<view class="bt">统一信用代码</view>
<view class="bd">{{detail.regno}}</view>
<view bind:tap="goRecord" class="record-btn">审批记录</view>
</view>
<!-- <view class="user-list" style="align-items: flex-start;">
<view class="bt">安装地址</view>
<view class="bd">{{detail.province}}{{detail.city}}{{detail.area}}{{detail.address}}</view>
</view> -->
</view>
<view class="content-list" wx:if="{{detail.auditType>0}}">
<view class="content-title-item txt-red" wx:if="{{detail.auditType=='1'}}">设计自审驳回</view>
<view class="content-title-item txt-red" wx:if="{{detail.auditType=='2'}}">设计审核驳回</view>
<view class="content-title-item txt-red" wx:if="{{detail.auditType=='3'}}">安装验收驳回</view>
<view class="content-title-item txt-red" wx:if="{{detail.auditType=='4'}}">并网验收驳回</view>
<text class="txt-red">{{detail.auditRemark}}</text>
</view>
</view>

@ -0,0 +1,4 @@
/* home/components/userInfo/userInfo.wxss */
@import "../../pages/completion/completion";
.txt-red{ color: #FF0000;}
.record-btn{ border: 1px solid #0a6597; color: #0a6597; border-radius: 30rpx; padding: 5rpx 15rpx; font-size: 24rpx;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save