resource.vue 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <template>
  2. <div class="resource">
  3. <div v-if="dialogfrom=='index'" class="index_search">
  4. <el-row>
  5. <span>行政区划:</span>
  6. <div class="index_search_list">
  7. <div class="item" :class="item.checked?'active':''" v-for="(item,index) in AreaDict" @click="choseArea2(item.code,index,'resource')">{{item.label}}</div>
  8. </div>
  9. </el-row>
  10. <el-row>
  11. <span>专项场景:</span>
  12. <div class="index_search_list">
  13. <div class="item" :class="item.checked?'active':''" v-for="(item,index) in dc_data.NOTICE_SCENE" @click="choseScene2(item.value,index,'resource')">{{item.label}}</div>
  14. </div>
  15. </el-row>
  16. </div>
  17. <el-tabs v-model="activeName" :stretch="false" v-if="dialogfrom!='scheme'">
  18. <el-tab-pane label="应急仓库" name="first"><warehouse v-if="activeName=='first'" :allarea="search.areaList" :allscene="search.senceList" :selectID_warehouse="selectID_warehouse" :dialogfrom="dialogfrom" @resetFun4="resetFun4" @getSelection="getSelection"></warehouse></el-tab-pane>
  19. <el-tab-pane label="应急物资" name="second"><goods v-if="activeName=='second'" :allarea="search.areaList" :allscene="search.senceList" :dialogfrom="dialogfrom" :selectID_goods="selectID_goods" @resetFun4="resetFun4" @getSelection="getSelection"></goods></el-tab-pane>
  20. <el-tab-pane label="避难场所" name="third"><refuge v-if="activeName=='third'" :allarea="search.areaList" :allscene="search.senceList" :dialogfrom="dialogfrom" :selectID_refuge="selectID_refuge" @resetFun4="resetFun4" @getSelection="getSelection"></refuge></el-tab-pane>
  21. <el-tab-pane v-if="dialogfrom=='index'||dialogfrom=='scheme'" label="应急专家" name="fourth"><expert v-if="activeName=='fourth'" :allarea="search.areaList" :selectID_expert="selectID_expert" :dialogfrom="dialogfrom" @resetFun4="resetFun4" @getSelection="getSelection"></expert></el-tab-pane>
  22. <el-tab-pane label="医疗机构" name="five"><institution v-if="activeName=='five'" :allarea="search.areaList" :dialogfrom="dialogfrom" :selectID_institution="selectID_institution" @resetFun4="resetFun4" @getSelection="getSelection"></institution></el-tab-pane>
  23. <el-tab-pane label="救援队伍" name="six"><rescue v-if="activeName=='six'" :allarea="search.areaList" :dialogfrom="dialogfrom" :selectID_rescue="selectID_rescue" @resetFun4="resetFun4" @getSelection="getSelection"></rescue></el-tab-pane>
  24. <el-tab-pane v-if="dialogfrom=='index'" label="重大危险源" name="seven"><dangerous v-if="activeName=='seven'" :allarea="search.areaList" :dialogfrom="dialogfrom" @resetFun4="resetFun4"></dangerous></el-tab-pane>
  25. <el-tab-pane v-if="dialogfrom=='scheme'" label="事件档案库" name="eight"><event v-if="activeName=='eight'" :dialogfrom="dialogfrom" :selectID_event="selectID_event" @getSelection="getSelection" ></event></el-tab-pane>
  26. </el-tabs>
  27. <el-tabs v-model="activeName" :stretch="false" v-if="dialogfrom=='scheme'">
  28. <el-tab-pane label="应急仓库" name="first" v-if="showTabList[0]"><warehouse v-if="activeName=='first'" :allarea="search.areaList" :allscene="search.senceList" :selectID_warehouse="selectID_warehouse" :dialogfrom="dialogfrom" @resetFun4="resetFun4" @getSelection="getSelection"></warehouse></el-tab-pane>
  29. <el-tab-pane label="应急物资" name="second" v-if="showTabList[1]"><goods v-if="activeName=='second'" :allarea="search.areaList" :allscene="search.senceList" :dialogfrom="dialogfrom" :selectID_goods="selectID_goods" @resetFun4="resetFun4" @getSelection="getSelection"></goods></el-tab-pane>
  30. <el-tab-pane label="避难场所" name="third" v-if="showTabList[2]"><refuge v-if="activeName=='third'" :allarea="search.areaList" :allscene="search.senceList" :dialogfrom="dialogfrom" :selectID_refuge="selectID_refuge" @resetFun4="resetFun4" @getSelection="getSelection"></refuge></el-tab-pane>
  31. <el-tab-pane v-if="showTabList[3]" label="应急专家" name="fourth"><expert v-if="activeName=='fourth'" :allarea="search.areaList" :selectID_expert="selectID_expert" :dialogfrom="dialogfrom" @resetFun4="resetFun4" @getSelection="getSelection"></expert></el-tab-pane>
  32. <el-tab-pane label="医疗机构" name="five" v-if="showTabList[4]"><institution v-if="activeName=='five'" :allarea="search.areaList" :dialogfrom="dialogfrom" :selectID_institution="selectID_institution" @resetFun4="resetFun4" @getSelection="getSelection"></institution></el-tab-pane>
  33. <el-tab-pane label="救援队伍" name="six" v-if="showTabList[5]"><rescue v-if="activeName=='six'" :allarea="search.areaList" :dialogfrom="dialogfrom" :selectID_rescue="selectID_rescue" @resetFun4="resetFun4" @getSelection="getSelection"></rescue></el-tab-pane>
  34. <el-tab-pane v-if="showTabList[6]" label="事件档案库" name="eight"><event v-if="activeName=='eight'" :dialogfrom="dialogfrom" :selectID_event="selectID_event" @getSelection="getSelection" ></event></el-tab-pane>
  35. </el-tabs>
  36. </div>
  37. </template>
  38. <script>
  39. import warehouse from '@/views/emergency/warehouse.vue'
  40. import goods from '@/views/emergency/goods.vue'
  41. import refuge from '@/views/emergency/refuge.vue'
  42. import institution from '@/views/emergency/institution.vue'
  43. import rescue from '@/views/emergency/rescue.vue'
  44. import expert from '@/views/emergency/expert.vue'
  45. import dangerous from '@/views/emergency/dangerous.vue'
  46. import event from '@/views/archives/event.vue'
  47. import Base from '@/views/base/base'
  48. export default {
  49. name: 'Notice',
  50. components: {
  51. warehouse,goods,refuge,institution,rescue,expert,dangerous,event
  52. },
  53. props: ['dialogfrom','openPage','openType','selectID_warehouse','selectID_goods','selectID_refuge','selectID_expert','selectID_institution','selectID_rescue','selectID_event','allType'],
  54. mixins: [Base],
  55. data() {
  56. return {
  57. activeName: 'first',
  58. dc_key:['NOTICE_SCENE'],
  59. areaList:[],
  60. senceList:[],
  61. search:{areaList:'',senceList:''},
  62. showTabList:[false,false,false,false,false,false,false],
  63. }
  64. },
  65. mounted() {
  66. console.log(this.dialogfrom)
  67. this.initDict(this.dc_key).then((res) => {
  68. this.initArea().then(()=>{
  69. })
  70. })
  71. switch(this.openPage){
  72. case 'warehouse':
  73. this.activeName='first'
  74. break;
  75. case 'goods':
  76. this.activeName='second'
  77. break;
  78. case 'refuge':
  79. this.activeName='third'
  80. break;
  81. case 'expert':
  82. this.activeName='fourth'
  83. break;
  84. case 'institution':
  85. this.activeName='five'
  86. break;
  87. case 'rescue':
  88. this.activeName='six'
  89. break;
  90. case 'event':
  91. this.activeName='eight'
  92. break;
  93. }
  94. if(this.allType){
  95. var result = this.allType
  96. for(var i=0;i<result.length;i++){
  97. var index=Number(result[i])
  98. this.$set(this.showTabList, index, true)
  99. }
  100. var C=['first','second','third','fourth','five','six','eight']
  101. this.activeName=C[Number(result[0])]
  102. console.log(this.showTabList)
  103. }
  104. },
  105. methods: {
  106. getSelection(data){
  107. this.$emit('getSelection',data)
  108. },
  109. resetFun4(){
  110. this.areaList=[]
  111. this.senceList=[]
  112. for(var i=0;i<this.AreaDict.length;i++){
  113. this.$set(this.AreaDict[i], 'checked', false);
  114. }
  115. for(var i=0;i<this.dc_data.NOTICE_SCENE.length;i++){
  116. this.$set(this.dc_data.NOTICE_SCENE[i], 'checked', false);
  117. }
  118. },
  119. choseArea2(code,index){
  120. if(this.areaList.length==0){
  121. this.areaList.push(code)
  122. this.AreaDict[index].checked=true
  123. }else{
  124. var is=false
  125. for(var i=0;i<this.areaList.length;i++){
  126. if(this.areaList[i]==code){
  127. this.areaList.splice(i,1)
  128. this.AreaDict[index].checked=false
  129. is=true
  130. }
  131. }
  132. if(!is){
  133. this.areaList.push(code)
  134. this.AreaDict[index].checked=true
  135. }
  136. }
  137. if(this.areaList.length==0){
  138. this.search.areaList=''
  139. }else{
  140. this.search.areaList=this.areaList.join(',')
  141. }
  142. },
  143. choseScene2(val,index){
  144. if(this.senceList.length==0){
  145. this.senceList.push(val)
  146. this.dc_data.NOTICE_SCENE[index].checked=true
  147. }else{
  148. var is=false
  149. for(var i=0;i<this.dc_data.NOTICE_SCENE.length;i++){
  150. if(this.senceList[i]==val){
  151. this.senceList.splice(i,1)
  152. this.dc_data.NOTICE_SCENE[index].checked=false
  153. is=true
  154. }
  155. }
  156. if(!is){
  157. this.senceList.push(val)
  158. this.dc_data.NOTICE_SCENE[index].checked=true
  159. }
  160. }
  161. if(this.senceList.length==0){
  162. this.search.senceList=''
  163. }else{
  164. this.search.senceList=this.senceList.join(',')
  165. }
  166. },
  167. }
  168. }
  169. </script>
  170. <style scoped lang="scss">
  171. </style>
  172. <style lang="scss">
  173. .resource{
  174. .el-tabs__item{
  175. width: 150px;
  176. text-align: center;
  177. padding: 0;
  178. }
  179. .el-tabs__active-bar{
  180. width: 150px!important;
  181. }
  182. }
  183. </style>