Commit d5aab126 authored by xinzhedeai's avatar xinzhedeai

add:新增接口对接

parent cde37d44
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</van-search> </van-search>
</div> </div>
<!-- 功能 --> <!-- 功能 -->
<button v-if="userType=='shop'" type="info" class="func_btn" @click="viewDetail"><span>+</span>新增{{clickTab==0?'安全培训':'应急演练'}}</button> <button v-if="userType!=='shop'" type="info" class="func_btn" @click="viewDetail"><span>+</span>新增{{activeTab==0?'安全培训':'应急演练'}}</button>
<!-- Tab栏 --> <!-- Tab栏 -->
<van-tabs v-model:active="activeTab" @click="clickTab" title-active-color="#1989fa" line-height="2px" <van-tabs v-model:active="activeTab" @click="clickTab" title-active-color="#1989fa" line-height="2px"
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<div class="msgTip"> <div class="msgTip">
该商家4/5/6月份未进行特种作业培训 5月份未进行培训演练 该商家4/5/6月份未进行特种作业培训 5月份未进行培训演练
</div> </div>
<van-cell v-for="item in hazardList" :key="item.id" @click="viewDetail(item.id)"> <van-cell v-for="item in hazardList" :key="item.id" @click="viewDetail(item)">
<div style="width: 100%;position: relative;"> <div style="width: 100%;position: relative;">
<!-- 第一行:商户名称 --> <!-- 第一行:商户名称 -->
<div class="tab1-row1 bold">{{ item.title }}</div> <div class="tab1-row1 bold">{{ item.title }}</div>
......
...@@ -50,7 +50,6 @@ window.addEventListener("load", function() { ...@@ -50,7 +50,6 @@ window.addEventListener("load", function() {
mounted() { mounted() {
let params = gemhoUtil.getUrlParams() let params = gemhoUtil.getUrlParams()
console.log(params); console.log(params);
this.merId = params.merId
this.init() // 获取隐患记录 this.init() // 获取隐患记录
this.getDict4tab1() this.getDict4tab1()
this.getDict4tab2() this.getDict4tab2()
...@@ -151,25 +150,18 @@ window.addEventListener("load", function() { ...@@ -151,25 +150,18 @@ window.addEventListener("load", function() {
this.formData.businessHours = time; this.formData.businessHours = time;
this.showTimePicker = false; this.showTimePicker = false;
}, },
viewDetail(item, type) { viewDetail(item) {
let params = { let params = {
id: item.id, id: item.id ||'',
merId: this.merId, merId: gemhoUtil.getParameter('merId'),
pageName: '_shanghu_home' pageName: '_peixun_yanlian'
} }
// 这里添加跳转逻辑 // 这里添加跳转逻辑
if (type === 'YH_XQ') { let pageUrl = '_peixun_yanlian_detail-anquan.html' // 安全培训详情页面
params = { if (item.exerciseType == '2') { // 跳转应急演练详情
...params, pageUrl = '_peixun_yanlian_detail-yingji.html'
flag: item.rectificationStatus,
}
} else {
params = {
...params,
flag: 'JC_XQ',
}
} }
let url = gemhoUtil.setParameter('_check_info.html', params) let url = gemhoUtil.setParameter(pageUrl, params)
gemhoUtil.navigatePage(url, '跳转中...') gemhoUtil.navigatePage(url, '跳转中...')
}, },
getList() { getList() {
...@@ -185,7 +177,6 @@ window.addEventListener("load", function() { ...@@ -185,7 +177,6 @@ window.addEventListener("load", function() {
interfacePrivateKey: API_KEY_MAP['page']['privateKey'], interfacePrivateKey: API_KEY_MAP['page']['privateKey'],
reqParams: { reqParams: {
sign: 30, sign: 30,
merId: this.merId,
title: this.title, title: this.title,
exerciseType: this.activeTab + 1, exerciseType: this.activeTab + 1,
safetyTrainingType: this.activeTab == 1 ? 0 : this.subActiveTab, safetyTrainingType: this.activeTab == 1 ? 0 : this.subActiveTab,
......
...@@ -337,4 +337,19 @@ body { ...@@ -337,4 +337,19 @@ body {
/* 可选:统一背景色 */ /* 可选:统一背景色 */
background-color: white; background-color: white;
} }
\ No newline at end of file .form-label-div {
height: 50px;
line-height: 50px;
padding: 0 12px;
font-size: .28rem;
font-weight: 500;
margin-bottom: -.3rem;
}
.img-wrapper {
display: flex;
gap: .16rem;
margin-top: 0.25rem;
margin-bottom: 0.15rem;
}
\ No newline at end of file
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
<!-- 在 includeHead.js 之后添加环境判断 --> <!-- 在 includeHead.js 之后添加环境判断 -->
<script src="../sdk/includeHead.js"></script> <script src="../sdk/includeHead.js"></script>
<script type="text/javascript" src="../sdk/axios_http3.js"></script> <script type="text/javascript" src="../sdk/axios_http3.js"></script>
<script>
alert(http2)
</script>
</head> </head>
<body> <body>
<div id="app" class="page_wrapper" v-cloak> <div id="app" class="page_wrapper" v-cloak>
...@@ -19,7 +23,7 @@ ...@@ -19,7 +23,7 @@
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">培训标题</span> <span class="form-label title_require">培训标题</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.contactName" :disabled="flag=='XQ'" class="form-input" <input type="text" v-model="formData.title" :disabled="flag=='XQ'" class="form-input"
placeholder=""> placeholder="">
</div> </div>
</div> </div>
...@@ -27,8 +31,8 @@ ...@@ -27,8 +31,8 @@
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">培训演练类别</span> <span class="form-label title_require">培训演练类别</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<select class="selector" v-model="formData.industryType" :disabled="flag=='XQ'"> <select class="selector" v-model="formData.safetyTrainingType" :disabled="flag=='XQ'">
<option v-for="(item, i) in 10" :key="i" :label="item.industryName" :value="item.id"> <option v-for="(item, i) in tabList4lv2" v-if="item.dictValue!='0'" :key="i" :label="item.dictLabel" :value="item.dictValue">
</option> </option>
</select> </select>
</div> </div>
...@@ -36,14 +40,14 @@ ...@@ -36,14 +40,14 @@
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">培训人数(人)</span> <span class="form-label title_require">培训人数(人)</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.contactDetails" :disabled="flag=='XQ'" <input type="text" v-model="formData.participantsNum" :disabled="flag=='XQ'"
class="form-input" placeholder=""> class="form-input" placeholder="">
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<span class="form-label title_require">负责人</span> <span class="form-label title_require">负责人</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.contactDetails" :disabled="flag=='XQ'" <input type="text" v-model="formData.responsiblePerson" :disabled="flag=='XQ'"
class="form-input" placeholder=""> class="form-input" placeholder="">
</div> </div>
</div> </div>
...@@ -53,7 +57,7 @@ ...@@ -53,7 +57,7 @@
<span class="form-label title_require">培训日期</span> <span class="form-label title_require">培训日期</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<van-field readonly v-model="formData.date" :disabled="flag=='XQ'" placeholder="" <van-field readonly v-model="formData.exerciseDate" :disabled="flag=='XQ'" placeholder=""
class="form-input" @click="showDatePickerModal" /> class="form-input" @click="showDatePickerModal" />
</div> </div>
...@@ -74,17 +78,16 @@ ...@@ -74,17 +78,16 @@
</div> </div>
</div> --> </div> -->
<!-- 详情模式 --> <!-- 详情模式 -->
<div class="img-wrapper" style="display: flex;gap:.16rem; margin-top: 0.25rem; <div class="form-label form-label-div">培训照片</div>
margin-bottom: 0.15rem;"> <div class="img-wrapper">
<div class="form-label title_require">培训照片</div> <div style="position: relative;" v-for="(imgItem, index) in formData.images">
<div style="position: relative;" v-for="(imgItem, index) in formData.floorPlanPhotos">
<img :src="previewUrl + imgItem" style="width: 1.6rem; height: 1.6rem;" <img :src="previewUrl + imgItem" style="width: 1.6rem; height: 1.6rem;"
@click="showImage(formData.floorPlanPhotos, index)" /> @click="showImage(formData.images, index)" />
<div v-if="flag=='XG'" class="van-uploader__preview-delete" <div v-if="flag=='XG'" class="van-uploader__preview-delete"
@click="handleDeleteFloorPlan(index, 'floorPlan')"><i @click="handleDeleteFloorPlan(index, 'floorPlan')"><i
class="van-icon van-icon-cross van-uploader__preview-delete-icon"></i></div> class="van-icon van-icon-cross van-uploader__preview-delete-icon"></i></div>
</div> </div>
<div v-if="formData.floorPlanPhotos.length<6 && flag=='ADD' "> <div v-if="formData.images.length<6 && flag=='ADD' ">
<van-uploader :before-read="beforeRead" :after-read="(file) => afterRead(file, 'floorPlan')" <van-uploader :before-read="beforeRead" :after-read="(file) => afterRead(file, 'floorPlan')"
class="uploader-wrapper" :deletable="false" :preview-image="false" class="uploader-wrapper" :deletable="false" :preview-image="false"
> >
......
...@@ -15,11 +15,12 @@ window.addEventListener("load", function () { ...@@ -15,11 +15,12 @@ window.addEventListener("load", function () {
showDatePicker: false, // 控制日期选择器显示 showDatePicker: false, // 控制日期选择器显示
minDate: new Date(gemhoUtil.getTargetDateYMD()), // 最小可选日期 minDate: new Date(gemhoUtil.getTargetDateYMD()), // 最小可选日期
maxDate: new Date(2099, 11, 31), // 最大可选日期 maxDate: new Date(2099, 11, 31), // 最大可选日期
tabList4lv2:[],
// 日期选择的最小范围,这里设置为当前日期的前 10 年 // 日期选择的最小范围,这里设置为当前日期的前 10 年
// maxDate: new Date(new Date().getFullYear() + 10, 11), // maxDate: new Date(new Date().getFullYear() + 10, 11),
// 新增以下数据 // 新增以下数据
formData: { formData: {
floorPlanPhotos: '', images: [],
submitDate: gemhoUtil.getTargetDateYMD(), submitDate: gemhoUtil.getTargetDateYMD(),
createDate: gemhoUtil.getTargetDateYMD(), createDate: gemhoUtil.getTargetDateYMD(),
date: gemhoUtil.getTargetDateYMD(), date: gemhoUtil.getTargetDateYMD(),
...@@ -41,11 +42,44 @@ window.addEventListener("load", function () { ...@@ -41,11 +42,44 @@ window.addEventListener("load", function () {
}else{ }else{
this.flag = 'ADD' this.flag = 'ADD'
} }
this.getDict4tab2()
}, },
methods: { methods: {
getDict4tab2() {
http2.post({
serviceId: API_KEY_MAP["page"]['id'],
interfacePublicKey: API_KEY_MAP["page"]["publicKey"],
interfacePrivateKey: API_KEY_MAP["page"]["privateKey"],
reqParams: {
page: 1,
size: 9999,
sign: 15,
dictType: 'safety_training_category'
}
}, (res) => {
if (!res) { // 中台返回为undefined 重新请求
vant.Toast.clear()
setTimeout(() => {
this.getDict4businessType()
}, 0);
return
}
if (res) {
console.log('接口回调数据=生产经营类型', JSON.parse(res))
setTimeout(() => {
this.$nextTick(() => {
vant.Toast.clear()
})
}, 0);
var result = JSON.parse(res)
this.tabList4lv2 = result.rows
}
})
},
// 处理平面图删除 // 处理平面图删除
handleDeleteFloorPlan(index, type) { handleDeleteFloorPlan(index, type) {
this.formData.floorPlanPhotos.splice(index, 1); this.formData.images.splice(index, 1);
}, },
beforeRead(file) { beforeRead(file) {
if(!['image/png','image/jpeg','image/jpg'].includes(file.type)){ if(!['image/png','image/jpeg','image/jpg'].includes(file.type)){
...@@ -65,7 +99,6 @@ window.addEventListener("load", function () { ...@@ -65,7 +99,6 @@ window.addEventListener("load", function () {
return true; return true;
}, },
afterRead(file, type) { // 调用爱山东中台系统,将数据流传递过去 afterRead(file, type) { // 调用爱山东中台系统,将数据流传递过去
alert(type)
vant.Toast.loading({ vant.Toast.loading({
message: '正在处理...', message: '正在处理...',
forbidClick: true, forbidClick: true,
...@@ -93,7 +126,7 @@ window.addEventListener("load", function () { ...@@ -93,7 +126,7 @@ window.addEventListener("load", function () {
.then(value => { .then(value => {
console.log(value, 'value图片上********'); // 处理后端返回的数据 console.log(value, 'value图片上********'); // 处理后端返回的数据
if(value){ // 返回信息不为空,则进行解密操作 if(value){ // 返回信息不为空,则进行解密操作
this.formData.floorPlanPhotos.push(value.fileName) this.formData.images.push(value.fileName)
// 可根据后端返回的数据做进一步处理,如显示上传成功信息等 // 可根据后端返回的数据做进一步处理,如显示上传成功信息等
setTimeout(() => { setTimeout(() => {
vant.Toast.clear() vant.Toast.clear()
...@@ -133,7 +166,7 @@ window.addEventListener("load", function () { ...@@ -133,7 +166,7 @@ window.addEventListener("load", function () {
const year = date.getFullYear(); const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0');
this.formData.date = `${year}-${month}-${day}`; this.formData.exerciseDate = `${year}-${month}-${day}`;
this.showDatePicker = false; this.showDatePicker = false;
}, },
...@@ -144,31 +177,31 @@ window.addEventListener("load", function () { ...@@ -144,31 +177,31 @@ window.addEventListener("load", function () {
}, },
submitForm() { submitForm() {
if (!this.formData.content) { if (!this.formData.title) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '培训标题不可为空', message: '培训标题不可为空',
}) })
return; return;
} }
if (!this.formData.content) { if (!this.formData.safetyTrainingType) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '培训演练类别不可为空', message: '培训演练类别不可为空',
}) })
return; return;
} }
if (!this.formData.content) { if (!this.formData.participantsNum) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '培训人数不可为空', message: '培训人数不可为空',
}) })
return; return;
} }
if (!this.formData.content) { if (!this.formData.responsiblePerson) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '培训人不可为空', message: '培训人不可为空',
}) })
return; return;
} }
if (!this.formData.content) { if (!this.formData.images.length) {
vant.Dialog.alert({ vant.Dialog.alert({
message: '图片不可为空', message: '图片不可为空',
}) })
...@@ -180,15 +213,16 @@ window.addEventListener("load", function () { ...@@ -180,15 +213,16 @@ window.addEventListener("load", function () {
loadingType: 'spinner', loadingType: 'spinner',
}); });
var reqParam = { var reqParam = {
merId: this.merId, merId: gemhoUtil.getParameter('merId'),
exerciseType: '1', // 安全培训
...this.formData, ...this.formData,
} }
// var url = "/gq/checkRecord/safeCheckRecord" reqParam.images = this.formData.images.join(',')
http3.post('/gq/consumer', reqParam).then((res) => { http3.post('/gaoqu/exercise', reqParam).then((res) => {
console.log('添加结果', res) console.log('添加结果', res)
vant.Toast({ vant.Toast({
message: '操作成功', message: res.code === 200 ? '操作成功': '操作失败',
}) })
location.reload() location.reload()
}) })
...@@ -207,14 +241,15 @@ window.addEventListener("load", function () { ...@@ -207,14 +241,15 @@ window.addEventListener("load", function () {
interfacePublicKey: API_KEY_MAP['no-page']['publicKey'], interfacePublicKey: API_KEY_MAP['no-page']['publicKey'],
interfacePrivateKey: API_KEY_MAP['no-page']['privateKey'], interfacePrivateKey: API_KEY_MAP['no-page']['privateKey'],
reqParams: { reqParams: {
sign: 11, sign: 31,
pageNum: this.page++, // 每次请求增加下一页 pageNum: this.page++, // 每次请求增加下一页
pageSize: this.size, pageSize: this.size,
merId: this.merId, exerciseId: this.id,
sort: 'lawId,desc', sort: 'lawId,desc',
}, },
}, },
(res) => { (res) => {
console.log('res', JSON.parse(res))
if (!res) { if (!res) {
// 中台返回为undefined 重新请求 // 中台返回为undefined 重新请求
vant.Toast.clear() vant.Toast.clear()
...@@ -225,7 +260,13 @@ window.addEventListener("load", function () { ...@@ -225,7 +260,13 @@ window.addEventListener("load", function () {
} }
if (res) { if (res) {
var result = JSON.parse(res) var result = JSON.parse(res)
this.formData = { ...this.formData, ...result.data } // 图片数据结构处理
let tempData = result.data
if(tempData['images']){
tempData['images'] = tempData['images'] ? tempData['images'].split(',') : []
}
this.formData = tempData
} }
} }
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment