edit.vue 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <template>
  2. <div class="lz-edit">
  3. <nav-bar></nav-bar>
  4. <div class="page-container">
  5. <div class="card" v-if="taskInfo">
  6. <van-panel :title="taskInfo.title" :status="getDicts(taskInfo.status,'resumption_status')">
  7. <van-cell title="日期时间" :value="taskInfo.planstarttime+'~'+taskInfo.planendtime" />
  8. <van-collapse :border="false" v-model="activeNames">
  9. <van-collapse-item title="履职内容" :name="1">
  10. <van-cell title="检查内容:" value="1" />
  11. <van-cell title="NFC:" >
  12. <template #extra>
  13. <span >已扫{{1}}</span>
  14. <span >未扫{{2}}</span>
  15. </template>
  16. </van-cell>
  17. <van-cell title="检查区域:">
  18. <template #extra>
  19. <span >已查{{1}}</span>
  20. <span >未查{{2}}</span>
  21. </template>
  22. </van-cell>
  23. </van-collapse-item>
  24. </van-collapse>
  25. </van-panel>
  26. </div>
  27. <div class="card">
  28. <van-panel title="巡检区域" v-if="areaList">
  29. <div style="padding: 10px;">
  30. <van-row >
  31. <van-col span="12" v-for="(v,i) in areaList" :key="v.areaid">
  32. <div class="check-area" @click="clickArea(v,i)">
  33. {{v.areaname}}
  34. <van-icon v-if="v.status" name="success" color="primary"/>
  35. <van-icon v-else name="fail" color="red"/>
  36. </div>
  37. </van-col>
  38. </van-row>
  39. <van-cell title="检查内容:" value="内容" />
  40. <van-cell :value="NFCNum" is-link>
  41. <template #title>
  42. <span class="custom-title">NFC:</span>
  43. </template>
  44. <!-- <template #right-icon>-->
  45. <!-- <van-icon name="search" class="search-icon" />-->
  46. <!-- </template>-->
  47. </van-cell>
  48. </div>
  49. </van-panel>
  50. </div>
  51. <div class="card" v-for="v in checkList" :key="v.itemid">
  52. <van-panel :title="v.itemname">
  53. <van-collapse v-model="activeNames">
  54. <van-collapse-item v-for="(item,index) in v.checkitemlist" :title="item.itemname" :name="index" :key="item.itemid">
  55. <van-cell :border="false" title="入侵报警撤防时间:">
  56. <template #right-icon>
  57. <van-switch
  58. v-model="checked"
  59. inactive-color="#4fc08d"
  60. active-color="orange"
  61. size="20" />
  62. </template>
  63. </van-cell>
  64. </van-collapse-item>
  65. </van-collapse>
  66. </van-panel>
  67. </div>
  68. <!-- <div class="card" v-if="selectArea">-->
  69. <!-- <van-collapse v-model="activeNames">-->
  70. <!-- <van-collapse-item title="布撤防检查" name="1">-->
  71. <!-- <van-cell :border="false" title="入侵报警撤防时间:">-->
  72. <!-- <template #right-icon>-->
  73. <!-- <van-switch-->
  74. <!-- v-model="checked"-->
  75. <!-- inactive-color="#4fc08d"-->
  76. <!-- active-color="orange"-->
  77. <!-- size="20" />-->
  78. <!-- </template>-->
  79. <!-- </van-cell>-->
  80. <!-- <van-cell-group v-show="checked">-->
  81. <!-- <date-cell title="现金区" v-model="date2"/>-->
  82. <!-- <date-cell title="客户区" date-type="date" v-model="date1"/>-->
  83. <!-- <date-cell title="整改期限" dateType="date" />-->
  84. <!-- <select-cell title="测试" v-model="sss" :dict="'sys_business_type'" is-link/>-->
  85. <!-- </van-cell-group>-->
  86. <!-- </van-collapse-item>-->
  87. <!-- <van-collapse-item title="技防设备检查" name="2">-->
  88. <!-- <van-cell title="报警及通信设备状态是否良好:">-->
  89. <!-- <template #right-icon>-->
  90. <!-- <van-switch-->
  91. <!-- v-model="checked"-->
  92. <!-- active-color="#4fc08d"-->
  93. <!-- inactive-color="orange"-->
  94. <!-- size="20" />-->
  95. <!-- </template>-->
  96. <!-- </van-cell>-->
  97. <!-- <van-field-->
  98. <!-- v-model="info"-->
  99. <!-- rows="1"-->
  100. <!-- autosize-->
  101. <!-- label="情况描述:"-->
  102. <!-- type="textarea"-->
  103. <!-- placeholder="请输入"-->
  104. <!-- />-->
  105. <!-- <div class="upload-box">-->
  106. <!-- <van-uploader v-model="fileList" multiple />-->
  107. <!-- </div>-->
  108. <!-- <van-cell title="整改期限" is-link/>-->
  109. <!-- </van-collapse-item>-->
  110. <!-- <van-collapse-item title="技防设备检查" name="2">-->
  111. <!-- <van-cell title="报警及通信设备状态是否良好:">-->
  112. <!-- <template #right-icon>-->
  113. <!-- <van-switch-->
  114. <!-- v-model="checked"-->
  115. <!-- active-color="#4fc08d"-->
  116. <!-- inactive-color="orange"-->
  117. <!-- size="20" />-->
  118. <!-- </template>-->
  119. <!-- </van-cell>-->
  120. <!-- <van-field-->
  121. <!-- v-model="info"-->
  122. <!-- rows="1"-->
  123. <!-- autosize-->
  124. <!-- label="情况描述:"-->
  125. <!-- type="textarea"-->
  126. <!-- placeholder="请输入"-->
  127. <!-- />-->
  128. <!-- <div class="upload-box">-->
  129. <!-- <van-uploader v-model="fileList" multiple />-->
  130. <!-- </div>-->
  131. <!-- <van-cell title="整改期限" is-link/>-->
  132. <!-- </van-collapse-item>-->
  133. <!-- </van-collapse>-->
  134. <!-- </div >-->
  135. <p class="warning-msg">需要完成所有区域的履职内容才能提交内容</p>
  136. <div class=""></div>
  137. </div>
  138. </div>
  139. </template>
  140. <script>
  141. import SelectCell from '@/components/selectCell';
  142. import DateCell from '@/components/dateCell';
  143. import NavBar from '@/components/NavBar';
  144. import {taskDetails} from "@/views/menu/LZRegister/api";
  145. export default {
  146. components:{SelectCell,NavBar,DateCell},
  147. data(){
  148. return {
  149. activeNames: ['1'],
  150. //基本信息
  151. taskInfo:[],
  152. //区域列表
  153. areaList:[],
  154. //
  155. fileList:[],
  156. //字典
  157. dicts: ['resumption_status'],
  158. //选中的区域
  159. selectArea:[],
  160. //区域下nfc列表
  161. NFCList:[],
  162. //区域下检查内容列表
  163. checkList:[],
  164. //检查内容具体项列表
  165. checkItemList:[],
  166. //nfc扫描数量
  167. NFCNum:0,
  168. }
  169. },
  170. created() {
  171. this.getData();
  172. },
  173. watch:{
  174. NFCList(){
  175. if(!this.NFCList) return;
  176. let arr = this.NFCList.filter(item=>{
  177. return item.status == 1;
  178. })
  179. this.NFCNum = arr.length;
  180. },
  181. },
  182. methods:{
  183. getData() {
  184. let data = {
  185. dateTime:new Date(),
  186. taskId:this.$route.query.id,
  187. }
  188. taskDetails(data).then(res=>{
  189. this.taskInfo = res.data.taskObj;
  190. this.taskInfo.nfcScaning = res.data.nfcScaning;
  191. this.areaList = res.data.taskarealist;
  192. this.activeArea(this.areaList[0],0);
  193. console.log(res)
  194. })
  195. },
  196. clickArea(area,index){
  197. this.activeArea(area,index);
  198. },
  199. activeArea(area,index){
  200. this.$nextTick(()=>{
  201. document.getElementsByClassName('check-area')[index].classList.add('active');
  202. })
  203. this.selectArea = area;
  204. this.checkList = area.checklist;
  205. this.NFCList = area.nfclist;
  206. },
  207. openTime(){
  208. },
  209. }
  210. }
  211. </script>
  212. <style lang="scss" scoped>
  213. .lz-edit{
  214. height: 100%;
  215. overflow: hidden;
  216. }
  217. .page-container{
  218. overflow: auto;
  219. padding: 20px;
  220. }
  221. .card{
  222. margin-bottom: 20px;
  223. box-shadow: 0 10px 10px #eaeaea;
  224. }
  225. .check-area{
  226. background-color: #f1f1f1;
  227. margin: 10px;
  228. padding:10px;
  229. color:#aaa;
  230. border-radius: 6px;
  231. display: flex;
  232. justify-content: space-between;
  233. align-items: center;
  234. }
  235. .custom-title {
  236. align-self: center;
  237. vertical-align: middle;
  238. }
  239. .search-icon {
  240. font-size: 26px;
  241. font-weight: 600;
  242. line-height: inherit;
  243. color: orange;
  244. }
  245. .upload-box{
  246. margin: 30px;
  247. }
  248. .warning-msg{
  249. color: orange;
  250. text-align: center;
  251. height: 40px;
  252. line-height: 40px;
  253. }
  254. .active{
  255. color: #fff;
  256. background-color: #1989fa;
  257. }
  258. </style>