recordDetails.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905
  1. <!-- 安全检查详情 -->
  2. <template>
  3. <view id="recordDetails">
  4. <view class="info-max-page" v-if="pageType == 1">
  5. <view class="position-button" v-if="buttonArrayType != 4">
  6. <picker @change="buttonChange" :value="buttonIndex" :range="buttonArray">查看报告</picker>
  7. </view>
  8. <view class="top-info-box">
  9. <view class="top-min-info-box">
  10. <view>整改类型:</view>
  11. <view>{{newData.zgType == 0?'一般整改':'重大整改'}}</view>
  12. </view>
  13. <view class="top-min-info-box">
  14. <view>实验室名称:</view>
  15. <view>{{newData.laboratoryName}}</view>
  16. </view>
  17. <view class="top-min-info-box">
  18. <view>房间号:</view>
  19. <view>{{newData.fjNumber}}</view>
  20. </view>
  21. <view class="top-min-info-box">
  22. <view>所属实验楼:</view>
  23. <view>{{newData.buildingName}}</view>
  24. </view>
  25. <view class="top-min-info-box">
  26. <view>实验室负责人:</view>
  27. <view>{{newData.fzrName}}</view>
  28. </view>
  29. <view class="top-min-info-box">
  30. <view>联系方式:</view>
  31. <view>{{newData.fzrLxfs}}</view>
  32. </view>
  33. <view class="top-min-info-box">
  34. <view>检查单位:</view>
  35. <view>{{newData.jcDwName}}</view>
  36. </view>
  37. <view class="top-min-info-box">
  38. <view>检查时间:</view>
  39. <view>{{newData.createTime}}</view>
  40. </view>
  41. <view class="top-min-info-box">
  42. <view>整改截止时间: </view>
  43. <view>{{newData.zgjzTime}}</view>
  44. </view>
  45. <!-- <view class="top-min-info-box" v-if="newData.zgStatus != 0">
  46. <view>整改确认时间: </view>
  47. <view>{{newData.zgqrTime==null?'':newData.zgqrTime}}</view>
  48. </view>
  49. <view class="top-min-info-box" v-if="newData.zgStatus == 2">
  50. <view>整改驳回时间: </view>
  51. <view>{{newData.zgbhTime}}</view>
  52. </view>
  53. <view class="top-min-info-box" v-if="newData.zgStatus == 4">
  54. <view>整改完成时间: </view>
  55. <view>{{newData.zgWcsj}}</view>
  56. </view> -->
  57. <view class="top-info-button" @click="infoClickButton">
  58. <view>{{showType?"收起详情":"查看详情"}}</view>
  59. <img v-if="showType" src="@/images/Version2.2/icon_aqjc_sq.png">
  60. <img v-if="!showType" src="@/images/Version2.2/icon_aqjc_sq_two.png">
  61. </view>
  62. </view>
  63. <view class="bottom-info-box" v-show="showType">
  64. <view class="bottom-info-title-box" v-if="newData.zgStatus==0">
  65. <img src="@/images/Version2.2/icon_aqjc_czwt.png">
  66. <view>存在隐患</view>
  67. </view>
  68. <view class="bottom-info-title-box" v-if="newData.zgStatus != 0">
  69. <img src="@/images/Version2.2/icon_aqjc_zgxx.png">
  70. <view>整改信息</view>
  71. </view>
  72. <!-- <view class="bottom-info-text-box" v-if="newData.zgStatus==4">
  73. <view>整改结果:</view>
  74. <view>{{newData.zgJg}}</view>
  75. </view>
  76. <view class="bottom-info-text-box" v-if="newData.zgStatus==2">
  77. <view>驳回原因:</view>
  78. <view>{{newData.fbYy}}</view>
  79. </view> -->
  80. <view class="rectified-max-box">
  81. <view class="rectified-for-box" v-if="item.isZg != 1" v-for="(item,index) in newData.detailsList" :key="index">
  82. <view class="rectified-for-position-index">{{index+1}}</view>
  83. <img v-if="newData.zgStatus == 4" class="rectified-for-position-img" src="@/images/Version2.2/icon_bg_ywc.png">
  84. <view class="rectified-for-title">{{item.jcxName}}</view>
  85. <view class="rectified-for-name" v-if="item.isLingshi == 1">临时检查项</view>
  86. <view class="rectified-for-name" v-if="item.isLingshi == 0">{{item.jcxSstkMs}}</view>
  87. <view class="rectified-for-text-max-box">
  88. <view class="rectified-for-text-box">
  89. <view>隐患描述:</view>
  90. <view>{{item.yhMs}}</view>
  91. </view>
  92. <view class="rectified-for-text-box" v-if="item.isZg == 0 && newData.zgType == 0">
  93. <view>整改描述:</view>
  94. <view>{{item.zgMs}}</view>
  95. </view>
  96. <!-- <view class="rectified-for-text-box" v-if="item.isZg == 0 && newData.zgType == 1">
  97. <view>原因分析:</view>
  98. <view>{{item.zgYyfx}}</view>
  99. </view> -->
  100. <!-- <view class="rectified-for-text-box" v-if="item.isZg == 0 && newData.zgType == 1">
  101. <view>整改措施:</view>
  102. <view>{{item.zgCs}}</view>
  103. </view> -->
  104. <!-- <view class="rectified-for-text-box" v-if="item.isZg == 1">
  105. <view>证明信息:</view>
  106. <view>{{item.zmClMs==null?'':item.zmClMs}}</view>
  107. </view> -->
  108. </view>
  109. <view class="rectified-for-img-max-box">
  110. <!-- <view class="rectified-for-img-box" @click="lockImg(item.yhImg)">
  111. <img :src="baseUrl+itemUrl" v-if="indexTwo<4" v-for="(itemUrl,indexTwo) in item.yhImg" :key="indexTwo">
  112. <view class="rectified-for-img-min-text" style="color:#999;" v-if="!item.yhImg[0]">未上传隐患照片</view>
  113. <view class="rectified-for-img-min-text" v-if="item.yhImg[0]">{{newData.zgStatus==0?'隐患照片':'整改前照片'}} >></view>
  114. </view>
  115. <view class="rectified-for-img-box" @click="lockImg(item.yhZghImg)" v-if="item.yhZghImg">
  116. <img :src="baseUrl+itemUrl" v-if="indexTwo<4" v-for="(itemUrl,indexTwo) in item.yhZghImg" :key="indexTwo">
  117. <view class="rectified-for-img-min-text">整改后照片 >></view>
  118. </view> -->
  119. <view class="rectify_front">
  120. <view class="rectify_front_t">整改前照片:</view>
  121. <view class="rectify_front_b" @click="lockImg(item.yhImg)">
  122. <img :src="itemUrl" v-for="(itemUrl,indexTwo) in item.yhImg" :key="indexTwo">
  123. </view>
  124. </view>
  125. <view v-for="(item2,index2) in item.detailslogList" :key="index2" style="border-bottom: 1px dotted #E0E0E0;">
  126. <view class="top-info-box rectify_info">
  127. <view class="top-min-info-box">
  128. <view>整改时间:</view>
  129. <view>{{item2.createTime}}</view>
  130. </view>
  131. <view class="top-min-info-box">
  132. <view>整改人:</view>
  133. <view>{{item2.zgUserName}}</view>
  134. </view>
  135. <view class="top-min-info-box">
  136. <view>整改描述:</view>
  137. <view style="text-align:left;">{{item2.zgMs}}</view>
  138. </view>
  139. </view>
  140. <view class="rectify_later">
  141. <view class="rectify_later_t">整改后照片:</view>
  142. <view class="rectify_later_b" @click="lockImg(item2.yhZghImg)">
  143. <img :src="item3" v-for="(item3,index3) in item2.yhZghImg" :key="index3">
  144. </view>
  145. </view>
  146. <view class="top-info-box rectify_info" v-if='item2.spTime'>
  147. <view class="top-min-info-box">
  148. <view>复核时间:</view>
  149. <view v-if="item2.spTime">{{item2.spTime}}</view>
  150. </view>
  151. <view class="top-min-info-box">
  152. <view>复核人:</view>
  153. <view v-if="item2.spUserName">{{item2.spUserName}}</view>
  154. </view>
  155. <view class="top-min-info-box">
  156. <view>复核描述:</view>
  157. <view style="text-align:left;" v-if="item2.spSm">{{item2.spSm}}</view>
  158. </view>
  159. </view>
  160. </view>
  161. </view>
  162. </view>
  163. </view>
  164. <view class="bottom-info-title-box" v-if="newData.zgStatus==3">
  165. <img src="@/images/Version2.2/icon_aqjc_zgxx.png">
  166. <view>未整改信息</view>
  167. </view>
  168. <view class="rectified-max-box">
  169. <view class="rectified-for-box" v-if="item.isZg == 1" v-for="(item,index) in newData.detailsList" :key="index">
  170. <view class="rectified-for-position-index">{{index+1}}</view>
  171. <view class="rectified-for-title">{{item.jcxName}}</view>
  172. <view class="rectified-for-name" v-if="item.isLingshi == 1">临时检查项</view>
  173. <view class="rectified-for-name" v-if="item.isLingshi == 0">{{item.jcxSstkMs}}</view>
  174. <view class="rectified-for-text-max-box">
  175. <view class="rectified-for-text-box">
  176. <view>隐患描述:</view>
  177. <view>{{item.yhMs}}</view>
  178. </view>
  179. <!-- <view class="rectified-for-text-box" v-if="item.isZg == 0 && newData.zgType == 0">
  180. <view>整改描述:</view>
  181. <view>{{item.zgMs}}</view>
  182. </view> -->
  183. <!-- <view class="rectified-for-text-box" v-if="item.isZg == 0 && newData.zgType == 1">
  184. <view>原因分析:</view>
  185. <view>{{item.zgYyfx}}</view>
  186. </view> -->
  187. <!-- <view class="rectified-for-text-box" v-if="item.isZg == 0 && newData.zgType == 1">
  188. <view>整改措施:</view>
  189. <view>{{item.zgCs}}</view>
  190. </view> -->
  191. <!-- <view class="rectified-for-text-box" v-if="item.isZg == 1">
  192. <view>证明信息:</view>
  193. <view>{{item.zmClMs==null?'':item.zmClMs}}</view>
  194. </view> -->
  195. </view>
  196. <view class="rectified-for-img-max-box">
  197. <view class="rectified-for-img-box" @click="lockImg(item.yhImg)">
  198. <img :src="itemUrl" v-for="(itemUrl,indexTwo) in item.yhImg" :key="indexTwo">
  199. <view class="rectified-for-img-min-text" style="color:#999;" v-if="!item.yhImg[0]">未上传隐患照片</view>
  200. <view class="rectified-for-img-min-text" v-if="item.yhImg[0]">{{newData.zgStatus==0?'隐患照片':'整改前照片'}} >></view>
  201. </view>
  202. <view class="rectified-for-img-box" @click="lockImg(item.zmClImg)" v-if="item.zmClImg">
  203. <img :src="itemUrl" v-for="(itemUrl,indexTwo) in item.zmClImg" :key="indexTwo">
  204. <view class="rectified-for-img-min-text">证明材料 >></view>
  205. </view>
  206. </view>
  207. </view>
  208. </view>
  209. </view>
  210. <!-- <view class="info-bottom-button-box" v-if="newData.zgStatus == 1">
  211. <view @click="pageClick(2)">驳回</view>
  212. <view @click="pageClick(3)">审核通过</view>
  213. </view> -->
  214. </view>
  215. <view class="input-max-box" v-if="pageType == 2">
  216. <view class="input-box">
  217. <textarea maxlength="100" v-model="text" placeholder="请输入驳回原因"></textarea>
  218. </view>
  219. <view class="input-button-box">
  220. <view class="out-button" @click="pageClick(1)">返回</view>
  221. <view class="input-button" @click="upDataClick(2)">提交</view>
  222. </view>
  223. </view>
  224. <view class="input-max-box" v-if="pageType == 3">
  225. <view class="input-box">
  226. <textarea maxlength="100" v-model="text" placeholder="请输入整改结果"></textarea>
  227. </view>
  228. <view class="input-button-box">
  229. <view class="out-button" @click="pageClick(1)">返回</view>
  230. <view class="input-button" @click="upDataClick(3)">提交</view>
  231. </view>
  232. </view>
  233. </view>
  234. </template>
  235. <script>
  236. import { config } from '@/api/request/config.js'
  237. import { recordDettailsList, checkRecordUpdate ,checkSign,queryDeptSignByUserId} from '@/api/index.js'
  238. export default {
  239. name: "recordDetails",
  240. data() {
  241. return {
  242. baseUrl:config.base_url,
  243. id:"",
  244. text:"",
  245. //选项
  246. buttonIndex:0,
  247. buttonArray:[],
  248. buttonArrayType:"",
  249. //页面状态
  250. pageType:1,
  251. //详情开关
  252. showType:false,
  253. //数据
  254. newData:{},
  255. }
  256. },
  257. onLoad(option) {
  258. this.id = option.id;
  259. this.getInfo();
  260. },
  261. onShow() {
  262. },
  263. methods: {
  264. pageClick(type){
  265. if(this.pageType != type){
  266. this.pageType = type;
  267. }
  268. },
  269. upDataClick(type){
  270. let self = this;
  271. if(!this.text){
  272. uni.showToast({
  273. title: this.pageType==2?'请输入驳回原因':(this.pageType == 3?'请输入整改结果':''),
  274. icon:"none",
  275. mask:true,
  276. duration: 2000
  277. });
  278. return
  279. }
  280. if(type == 2){
  281. let obj = {
  282. id:this.id,
  283. createUserId:this.newData.createUserId,
  284. fbYy:this.text,
  285. zgStatus:2,
  286. };
  287. uni.showModal({
  288. content: '确认要驳回吗?',
  289. cancelColor:"#999",
  290. confirmColor:"#0183FA",
  291. success: function (res) {
  292. if (res.confirm) {
  293. self.checkRecordUpdate(obj);
  294. console.log('用户点击确定');
  295. } else if (res.cancel) {
  296. console.log('用户点击取消');
  297. }
  298. }
  299. });
  300. }else if(type == 3){
  301. let obj = {
  302. id:this.id,
  303. createUserId:this.newData.createUserId,
  304. zgJg:this.text,
  305. zgStatus:4,
  306. }
  307. uni.showModal({
  308. content: '确认要审核通过吗?',
  309. cancelColor:"#999",
  310. confirmColor:"#0183FA",
  311. success: function (res) {
  312. if (res.confirm) {
  313. self.checkRecordUpdate(obj);
  314. console.log('用户点击确定');
  315. } else if (res.cancel) {
  316. console.log('用户点击取消');
  317. }
  318. }
  319. });
  320. }
  321. },
  322. async checkRecordUpdate(obj){
  323. const {data} = await checkRecordUpdate(obj);
  324. if(data.code == 200){
  325. uni.showToast({
  326. title: '操作成功',
  327. icon:"none",
  328. mask:true,
  329. duration: 2000
  330. });
  331. setTimeout(function(){
  332. uni.navigateBack();
  333. },2000);
  334. }
  335. },
  336. async getInfo(){
  337. let obj = {
  338. id:this.id
  339. };
  340. const {data} = await recordDettailsList(obj);
  341. if(data.code == 200){
  342. let obj = JSON.parse(JSON.stringify(data.data));
  343. for(let i=0;i<obj.yhlist.length;i++){
  344. let text = "";
  345. if(obj.yhlist[i].level1){
  346. text = text + obj.yhlist[i].level1;
  347. }
  348. if(obj.yhlist[i].level2){
  349. text = text + '/'+ obj.yhlist[i].level2;
  350. }
  351. if(obj.yhlist[i].level3){
  352. text = text + '/'+ obj.yhlist[i].level3;
  353. }
  354. if(obj.yhlist[i].level4){
  355. text = text + '/'+ obj.yhlist[i].level4;
  356. }
  357. obj.yhlist[i].level = text;
  358. if(obj.yhlist[i].yhImg){
  359. if(obj.yhlist[i].yhImg[i]){
  360. let yhImgList=obj.yhlist[i].yhImg.split(",");
  361. for(let m=0;m<yhImgList.length;m++){
  362. yhImgList[m]=config.base_url+yhImgList[m];
  363. }
  364. obj.yhlist[i].yhImg = yhImgList;
  365. }
  366. }
  367. if(obj.yhlist[i].zmClImg){
  368. if(obj.yhlist[i].zmClImg[i]){
  369. let yhlImgList=obj.yhlist[i].zmClImg.split(",");
  370. for(let k=0;k<yhlImgList.length;k++){
  371. yhlImgList[k]=config.base_url+yhlImgList[k];
  372. }
  373. obj.yhlist[i].zmClImg = yhlImgList;
  374. }
  375. }
  376. /* 整改后照片 */
  377. /* if(obj.yhlist[i].yhZghImg){
  378. if(obj.yhlist[i].yhZghImg[i]){
  379. let zghImgList=obj.yhlist[i].yhZghImg.split(",");
  380. for(let j=0;j<zghImgList.length;j++){
  381. zghImgList[j]=config.base_url+zghImgList[j];
  382. }
  383. obj.yhlist[i].yhZghImg = zghImgList;
  384. }
  385. } */
  386. if(obj.yhlist[i].detailslogList){
  387. if(obj.yhlist[i].detailslogList.length>0){
  388. obj.yhlist[i].detailslogList.forEach(function(item){
  389. let list=[];
  390. let urlList=[];
  391. list=item.yhZghImg.split(',')
  392. list.forEach(function(item2){
  393. urlList.push(config.base_url+item2)
  394. })
  395. item.yhZghImg=urlList
  396. })
  397. }
  398. }
  399. }
  400. let newOjb = obj.record;
  401. newOjb.detailsList = obj.yhlist;
  402. //判断悬浮按钮
  403. if(newOjb.zgType == 0){
  404. this.$set(this,'buttonArray',[])
  405. this.buttonArrayType = 4;
  406. }else if(newOjb.zgType == 1 && (newOjb.zgStatus == 1 || newOjb.zgStatus == 3 || newOjb.zgStatus == 4)){
  407. this.$set(this,'buttonArray',["整改通知书","整改报告"])
  408. this.buttonArrayType = 1;
  409. }else if(newOjb.zgType == 1 && (newOjb.zgStatus != 1 || newOjb.zgStatus != 3 || newOjb.zgStatus != 4)){
  410. this.$set(this,'buttonArray',["整改通知书"])
  411. this.buttonArrayType = 2;
  412. }
  413. this.$set(this,'newData',newOjb);
  414. }
  415. },
  416. //查看报告按钮
  417. async buttonChange(e){
  418. let namestatus;
  419. let sealstatus;
  420. //判断有没有电子签名
  421. const {data} = await checkSign();
  422. if(data.code==200){
  423. namestatus=data.data
  424. if(data.data==false){//true有电子签名false没有电子签名
  425. uni.showModal({
  426. title: '',
  427. cancelColor:'#999999',
  428. confirmColor:'#FF6E6E',
  429. cancelText: "取消", // 取消按钮的文字
  430. confirmText: "去上传", // 确认按钮文字
  431. content: '您未上传电子签名,无法生成整改通知书/整改报告!',
  432. success (res) {
  433. if (res.confirm) {
  434. console.log('用户点击确定')
  435. uni.navigateTo({
  436. url: '/pages_manage/workbench/signature/signature'
  437. });
  438. } else if (res.cancel) {
  439. console.log('用户点击取消')
  440. }
  441. }
  442. })
  443. }else{
  444. }
  445. }
  446. //如果有电子签名判断有没有电子签章
  447. if(namestatus){
  448. const {data} = await queryDeptSignByUserId();
  449. if(data.code==200){
  450. console.log(data.data.data.isUpload)
  451. sealstatus=data.data.data.isUpload
  452. if(data.data.data.isUpload==false){
  453. uni.showToast({
  454. title: '学院未上传电子签章,无法生成整改通知书/整改报告',
  455. icon:"none",
  456. mask:true,
  457. duration: 2000
  458. });
  459. }
  460. };
  461. }
  462. //如果有电子签名和电气签章开始下载
  463. if(namestatus==true && sealstatus==true){
  464. if(this.buttonArrayType == 1){
  465. if(e.target.value == 0){
  466. this.genNotice();
  467. }else if(e.target.value == 1){
  468. this.genReport();
  469. }
  470. }else if(this.buttonArrayType == 2){
  471. this.genNotice();
  472. }
  473. }
  474. },
  475. genNotice(){
  476. uni.showLoading({
  477. title: '下载中'
  478. });
  479. wx.downloadFile({
  480. url: config.base_url+'/laboratory/checkOption/genNotice/' + this.newData.id,
  481. header: {
  482. Authorization: uni.getStorageSync('token')
  483. },
  484. success: function (res) {
  485. const fileManager = wx.getFileSystemManager()
  486. const filePath = wx.env.USER_DATA_PATH + '/整改通知书.docx'
  487. fileManager.saveFile({
  488. tempFilePath: res.tempFilePath,
  489. filePath,
  490. success: () => {
  491. uni.hideLoading();
  492. wx.openDocument({
  493. filePath: filePath,
  494. showMenu: true,
  495. fileType: 'docx'
  496. })
  497. },
  498. fail: function (res){
  499. uni.hideLoading();
  500. uni.showToast({
  501. title: '下载失败',
  502. icon:"none",
  503. mask:true,
  504. duration: 2000
  505. });
  506. }
  507. })
  508. },
  509. fail: function (res){
  510. uni.hideLoading();
  511. uni.showToast({
  512. title: '下载失败',
  513. icon:"none",
  514. mask:true,
  515. duration: 2000
  516. });
  517. }
  518. })
  519. },
  520. genReport(){
  521. uni.showLoading({
  522. title: '下载中'
  523. });
  524. wx.downloadFile({
  525. url: config.base_url+'/laboratory/checkOption/genReport/' + this.newData.id,
  526. header: {
  527. Authorization: uni.getStorageSync('token')
  528. },
  529. success: function (res) {
  530. const fileManager = wx.getFileSystemManager()
  531. const filePath = wx.env.USER_DATA_PATH + '/整改报告.docx'
  532. fileManager.saveFile({
  533. tempFilePath: res.tempFilePath,
  534. filePath,
  535. success: () => {
  536. uni.hideLoading();
  537. wx.openDocument({
  538. filePath: filePath,
  539. showMenu: true,
  540. fileType: 'docx'
  541. })
  542. },
  543. fail: function (res){
  544. uni.hideLoading();
  545. uni.showToast({
  546. title: '下载失败',
  547. icon:"none",
  548. mask:true,
  549. duration: 2000
  550. });
  551. }
  552. })
  553. },
  554. fail: function (res){
  555. uni.hideLoading();
  556. uni.showToast({
  557. title: '下载失败',
  558. icon:"none",
  559. mask:true,
  560. duration: 2000
  561. });
  562. }
  563. })
  564. },
  565. //详情开关
  566. infoClickButton(type){
  567. this.showType = !this.showType;
  568. },
  569. //查看图片
  570. lockImg(list){
  571. if(!list[0]){
  572. return
  573. }
  574. /* let urlList=[];
  575. list.forEach(function(item){
  576. urlList.push(config.base_url+item)
  577. }) */
  578. wx.previewImage({
  579. urls: list, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
  580. current: '', // 当前显示图片的http链接,默认是第一个
  581. success: function(res) {},
  582. fail: function(res) {},
  583. complete: function(res) {},
  584. })
  585. },
  586. }
  587. }
  588. </script>
  589. <style lang="stylus" scoped>
  590. #recordDetails{
  591. height: 100%;
  592. width: 100%;
  593. display flex
  594. .info-max-page{
  595. flex:1;
  596. .position-button{
  597. position fixed
  598. right:0;
  599. top:214rpx;
  600. width:160rpx;
  601. height:60rpx;
  602. background #0183FA
  603. color:#fff;
  604. text-align center
  605. line-height:60rpx;
  606. font-size:26rpx;
  607. z-index:10;
  608. border-radius:50rpx 0 0 50rpx;
  609. }
  610. .top-info-box{
  611. background #fff
  612. margin:20rpx;
  613. padding:20rpx 20rpx 0;
  614. border-radius:20rpx;
  615. .top-min-info-box{
  616. line-height:66rpx;
  617. display:flex;
  618. font-size:28rpx;
  619. view:nth-child(1){
  620. width:220rpx;
  621. color:#999;
  622. }
  623. view:nth-child(2){
  624. flex:1;
  625. text-align:right;
  626. }
  627. }
  628. .top-info-button{
  629. border-top:1rpx solid #dedede;
  630. display:flex;
  631. line-height:98rpx;
  632. margin-top:20rpx;
  633. view{
  634. font-size:28rpx;
  635. margin-left:258rpx;
  636. color:#0183FA;
  637. }
  638. img{
  639. width:24rpx;
  640. height:12rpx;
  641. margin:45rpx 0 0 15rpx;
  642. }
  643. }
  644. }
  645. .bottom-info-box{
  646. .bottom-info-title-box{
  647. display flex;
  648. height:80rpx;
  649. margin:20rpx;
  650. img{
  651. width:32rpx;
  652. height:32rpx;
  653. margin:24rpx 15rpx 0 0;
  654. }
  655. view{
  656. line-height:80rpx;
  657. color:#333;
  658. font-size:30rpx;
  659. }
  660. }
  661. .bottom-info-text-box{
  662. display flex
  663. margin:20rpx;
  664. padding:36rpx 35rpx 36rpx 28rpx;
  665. background #fff
  666. border-radius:20rpx;
  667. view{
  668. font-size:28rpx;
  669. }
  670. view:nth-child(1){
  671. color:#999;
  672. width:140rpx;
  673. }
  674. view:nth-child(2){
  675. color:#666;
  676. flex:1;
  677. text-align left
  678. }
  679. }
  680. .rectified-max-box{
  681. .rectified-for-box{
  682. background #fff
  683. margin:20rpx;
  684. border-radius:20rpx;
  685. position relative
  686. overflow hidden
  687. .rectified-for-position-index{
  688. position absolute
  689. left:0;
  690. top:0;
  691. background #B4DBFF;
  692. color:#0183FA;
  693. width:50rpx;
  694. height:50rpx;
  695. text-align center;
  696. line-height:50rpx;
  697. font-size:34rpx;
  698. }
  699. .rectified-for-position-img{
  700. position absolute
  701. right:43rpx;
  702. top:105rpx;
  703. width:250rpx;
  704. height:220rpx;
  705. }
  706. .rectified-for-title{
  707. line-height:30rpx;
  708. font-size:30rpx;
  709. color:#333;
  710. margin:78rpx 30rpx 36rpx;
  711. }
  712. .rectified-for-name{
  713. margin:0 30rpx;
  714. line-height:40rpx;
  715. font-size:28rpx;
  716. padding-bottom:39rpx;
  717. color:#666;
  718. border-bottom:1rpx solid #E0E0E0;
  719. }
  720. .rectified-for-text-max-box{
  721. margin:38rpx 30rpx 0;
  722. .rectified-for-text-box{
  723. display flex
  724. margin-bottom :20rpx;
  725. view{
  726. font-size:28rpx;
  727. }
  728. view:nth-child(1){
  729. width:140rpx;
  730. color:#999;
  731. line-height 40rpx
  732. }
  733. view:nth-child(2){
  734. flex:1;
  735. color:#666;
  736. line-height 40rpx
  737. }
  738. }
  739. }
  740. .rectified-for-img-max-box{
  741. margin:35rpx 26rpx 40rpx;
  742. .rectified-for-img-box{
  743. margin-bottom :20rpx;
  744. display flex
  745. background #f0f0f0
  746. border-radius:10rpx;
  747. padding:10rpx 35rpx 10rpx 23rpx;
  748. img{
  749. width:80rpx;
  750. height:80rpx;
  751. margin-right:10rpx;
  752. }
  753. .rectified-for-img-min-text{
  754. flex:1;
  755. //text-align right;
  756. line-height:80rpx;
  757. color:#0183FA;
  758. font-size:28rpx;
  759. }
  760. }
  761. /* 整改前照片 */
  762. .rectify_front{
  763. .rectify_front_t{
  764. width:150rpx;
  765. color:#999;
  766. line-height 40rpx
  767. font-size :28rpx;
  768. margin-bottom :24rpx;
  769. }
  770. .rectify_front_b{
  771. display :flex;
  772. justify-content :flex-start;
  773. flex-wrap: wrap;
  774. align-items :center;
  775. border-bottom: 1px solid #E0E0E0;
  776. >img{
  777. width: 200rpx;
  778. height: 200rpx;
  779. margin-right :14rpx;
  780. margin-bottom 40rpx;
  781. border-radius :10rpx;
  782. }
  783. }
  784. }
  785. .rectify_info{
  786. margin: 0;
  787. padding: 0;
  788. margin-top 40rpx;
  789. margin-bottom :10rpx;
  790. }
  791. /* 整改后照片 */
  792. .rectify_later{
  793. .rectify_later_t{
  794. width:150rpx;
  795. color:#999;
  796. line-height 40rpx
  797. font-size :28rpx;
  798. margin-bottom :24rpx;
  799. }
  800. .rectify_later_b{
  801. display :flex;
  802. justify-content :flex-start;
  803. flex-wrap: wrap;
  804. align-items :center;
  805. >img{
  806. width: 200rpx;
  807. height: 200rpx;
  808. margin-right :14rpx;
  809. margin-bottom 40rpx;
  810. border-radius :10rpx;
  811. }
  812. }
  813. }
  814. }
  815. }
  816. }
  817. }
  818. .info-bottom-button-box{
  819. display flex
  820. width:650rpx;
  821. height:100rpx;
  822. margin:50rpx auto;
  823. view{
  824. text-align center
  825. line-height:100rpx;
  826. font-size:30rpx;
  827. color:#fff;
  828. }
  829. view:nth-child(1){
  830. width: 325rpx;
  831. height: 100rpx;
  832. background: linear-gradient(-45deg, #FA9901, #F28E26);
  833. border-radius: 50rpx 0 0 50rpx;
  834. }
  835. view:nth-child(2){
  836. width: 325rpx;
  837. height: 100rpx;
  838. background: linear-gradient(-35deg, #309CFF, #0183FA);
  839. border-radius: 0 50rpx 50rpx 0;
  840. }
  841. }
  842. }
  843. .input-max-box{
  844. flex:1;
  845. .input-box{
  846. margin:20rpx;
  847. background #fff
  848. border-radius:20rpx;
  849. display flex
  850. overflow hidden
  851. textarea{
  852. width:610rpx;
  853. height:212rpx;
  854. margin:36rpx auto 47rpx;
  855. font-size:28rpx;
  856. padding:33rpx 24rpx;
  857. border-radius:10rpx;
  858. border: 2rpx solid #E0E0E0;
  859. }
  860. }
  861. .input-button-box{
  862. display flex
  863. width:700rpx;
  864. margin:50rpx auto;
  865. .out-button{
  866. flex:1;
  867. text-align center
  868. line-height:100rpx;
  869. font-size:28rpx;
  870. color:#fff;
  871. background #999;
  872. border-radius: 50rpx 0 0 50rpx;
  873. }
  874. .input-button{
  875. flex:1;
  876. text-align center
  877. line-height:100rpx;
  878. font-size:28rpx;
  879. color:#fff;
  880. background #0183FA;
  881. border-radius: 0 50rpx 50rpx 0;
  882. }
  883. }
  884. }
  885. }
  886. </style>