index.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. <template>
  2. <div class="app-container">
  3. <!-- 搜索工作栏 -->
  4. <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="130px">
  5. <el-form-item label="所属乡镇街道" prop="streetId">
  6. <el-input v-model="queryParams.streetId" placeholder="请输入所属乡镇街道" clearable @keyup.enter.native="handleQuery" />
  7. </el-form-item>
  8. <el-form-item label="居民住宅区名称" prop="jmzzqmc">
  9. <el-input v-model="queryParams.jmzzqmc" placeholder="请输入居民住宅区名称" clearable @keyup.enter.native="handleQuery" />
  10. </el-form-item>
  11. <el-form-item label="地址" prop="dz">
  12. <el-input v-model="queryParams.dz" placeholder="请输入地址" clearable @keyup.enter.native="handleQuery" />
  13. </el-form-item>
  14. <!-- <el-form-item label="居民人数" prop="jmrs">
  15. <el-input v-model="queryParams.jmrs" placeholder="请输入居民人数" clearable @keyup.enter.native="handleQuery" />
  16. </el-form-item>
  17. <el-form-item label="消防设施器材情况" prop="xfssqc">
  18. <el-input v-model="queryParams.xfssqc" placeholder="请输入消防设施器材情况" clearable @keyup.enter.native="handleQuery" />
  19. </el-form-item>
  20. <el-form-item label="物业服务企业名称" prop="wymc">
  21. <el-input v-model="queryParams.wymc" placeholder="请输入物业服务企业名称" clearable @keyup.enter.native="handleQuery" />
  22. </el-form-item>
  23. <el-form-item label="进驻时间" prop="jzsj">
  24. <el-input v-model="queryParams.jzsj" placeholder="请输入进驻时间" clearable @keyup.enter.native="handleQuery" />
  25. </el-form-item>
  26. <el-form-item label="消防安全管理人" prop="xfaqglr">
  27. <el-input v-model="queryParams.xfaqglr" placeholder="请输入消防安全管理人" clearable @keyup.enter.native="handleQuery" />
  28. </el-form-item>
  29. <el-form-item label="联系电话" prop="lxdh">
  30. <el-input v-model="queryParams.lxdh" placeholder="请输入联系电话" clearable @keyup.enter.native="handleQuery" />
  31. </el-form-item> -->
  32. <!-- <el-form-item label="状态" prop="status">
  33. <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
  34. <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" :key="dict.value" :label="dict.label"
  35. :value="dict.value" />
  36. </el-select>
  37. </el-form-item> -->
  38. <el-form-item>
  39. <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
  40. <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
  41. </el-form-item>
  42. </el-form>
  43. <!-- 操作工具栏 -->
  44. <el-row :gutter="10" class="mb8">
  45. <!-- <el-col :span="1.5">
  46. <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
  47. v-hasPermi="['backend:street-annex2:create']">新增</el-button>
  48. </el-col> -->
  49. <el-col :span="1.5">
  50. <el-button type="info" icon="el-icon-upload2" size="mini" @click="handleImport"
  51. v-hasPermi="['system:user:import']">导入</el-button>
  52. </el-col>
  53. <el-col :span="1.5">
  54. <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
  55. v-hasPermi="['backend:street-annex2:export']">导出</el-button>
  56. </el-col>
  57. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  58. </el-row>
  59. <!-- 列表 -->
  60. <el-table v-loading="loading" :data="list">
  61. <el-table-column label="ID" align="center" prop="id" />
  62. <!-- <el-table-column label="所属乡镇街道" align="center" prop="streetId" width="120" /> -->
  63. <el-table-column label="所属乡镇街道" align="center" prop="streetId" width="120" >
  64. <template v-slot="scope">
  65. <span>{{ getValue(scope.row.streetId) }}</span>
  66. </template>
  67. </el-table-column>
  68. <el-table-column label="居民住宅区名称" align="center" prop="jmzzqmc" width="140" />
  69. <el-table-column label="地址" align="center" prop="dz" width="200" />
  70. <el-table-column label="居民人数" align="center" prop="jmrs" width="80" />
  71. <el-table-column label="消防设施器材情况" align="center" prop="xfssqc" width="130" />
  72. <el-table-column label="物业服务企业名称" align="center" prop="wymc" width="130" />
  73. <el-table-column label="进驻时间" align="center" prop="jzsj" width="150">
  74. <template v-slot="scope">
  75. <span>{{ parseTime(scope.row.jzsj) }}</span>
  76. </template>
  77. </el-table-column>
  78. <el-table-column label="消防安全管理人" align="center" prop="xfaqglr" width="120" />
  79. <el-table-column label="联系电话" align="center" prop="lxdh" width="150" />
  80. <!-- <el-table-column label="状态" align="center" prop="status">
  81. <template v-slot="scope">
  82. <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
  83. </template>
  84. </el-table-column> -->
  85. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
  86. <template v-slot="scope">
  87. <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
  88. v-hasPermi="['backend:street-annex2:update']">修改</el-button> -->
  89. <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
  90. v-hasPermi="['backend:street-annex2:delete']">删除</el-button>
  91. </template>
  92. </el-table-column>
  93. </el-table>
  94. <!-- 分页组件 -->
  95. <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
  96. @pagination="getList" />
  97. <!-- 对话框(添加 / 修改) -->
  98. <el-dialog :title="title" :visible.sync="open" width="600px" v-dialogDrag append-to-body>
  99. <el-form ref="form" :model="form" :rules="rules" label-width="130px">
  100. <el-form-item label="所属乡镇街道" prop="streetId">
  101. <el-input v-model="form.streetId" placeholder="请输入所属乡镇街道" />
  102. </el-form-item>
  103. <el-form-item label="居民住宅区名称" prop="jmzzqmc">
  104. <el-input v-model="form.jmzzqmc" placeholder="请输入居民住宅区名称" />
  105. </el-form-item>
  106. <el-form-item label="地址" prop="dz">
  107. <el-input v-model="form.dz" placeholder="请输入地址" />
  108. </el-form-item>
  109. <el-form-item label="消防安全管理人" prop="xfaqglr">
  110. <el-input v-model="form.xfaqglr" placeholder="请输入消防安全管理人" />
  111. </el-form-item>
  112. <el-form-item label="联系电话" prop="lxdh">
  113. <el-input v-model="form.lxdh" placeholder="请输入联系电话" />
  114. </el-form-item>
  115. <el-form-item label="居民人数" prop="jmrs">
  116. <el-input v-model="form.jmrs" placeholder="请输入居民人数" />
  117. </el-form-item>
  118. <el-form-item label="消防设施器材情况" prop="xfssqc">
  119. <el-input v-model="form.xfssqc" placeholder="请输入消防设施器材情况" />
  120. </el-form-item>
  121. <el-form-item label="物业服务企业名称" prop="wymc">
  122. <el-input v-model="form.wymc" placeholder="请输入物业服务企业名称" />
  123. </el-form-item>
  124. <el-form-item label="进驻时间" prop="jzsj">
  125. <el-input v-model="form.jzsj" placeholder="请输入进驻时间" />
  126. </el-form-item>
  127. <el-form-item label="备注" prop="remark">
  128. <el-input v-model="form.remark" placeholder="请输入备注" />
  129. </el-form-item>
  130. <!-- <el-form-item label="状态" prop="status">
  131. <el-radio-group v-model="form.status">
  132. <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" :key="dict.value"
  133. :label="parseInt(dict.value)">{{ dict.label }}</el-radio>
  134. </el-radio-group>
  135. </el-form-item> -->
  136. </el-form>
  137. <div slot="footer" class="dialog-footer">
  138. <el-button type="primary" @click="submitForm">确 定</el-button>
  139. <el-button @click="cancel">取 消</el-button>
  140. </div>
  141. </el-dialog>
  142. <exportFile :open="uploadOpen" :title="uploadTitle" :uploadUrl="uploadUrl" @UploadOpen="UploadOpen"/>
  143. </div>
  144. </template>
  145. <script>
  146. import { createStreetAnnex2, updateStreetAnnex2, deleteStreetAnnex2, getStreetAnnex2, getStreetAnnex2Page, exportStreetAnnex2Excel } from "@/api/backend/streetAnnex2"
  147. import exportFile from "@/components/exportFile";
  148. import { getStreetValue } from "@/utils/dict"
  149. export default {
  150. name: "StreetAnnex2",
  151. components: {
  152. exportFile
  153. },
  154. data() {
  155. return {
  156. uploadUrl:'/admin-api/backend/street-annex2/import',
  157. uploadOpen:false,
  158. uploadTitle:'',
  159. // 遮罩层
  160. loading: true,
  161. // 导出遮罩层
  162. exportLoading: false,
  163. // 显示搜索条件
  164. showSearch: true,
  165. // 总条数
  166. total: 0,
  167. // 居民住宅物业服务企业消防工作基本情况登记列表
  168. list: [],
  169. // 弹出层标题
  170. title: "",
  171. // 是否显示弹出层
  172. open: false,
  173. // 查询参数
  174. queryParams: {
  175. pageNo: 1,
  176. pageSize: 10,
  177. streetId: null,
  178. jmzzqmc: null,
  179. dz: null,
  180. jmrs: null,
  181. xfssqc: null,
  182. wymc: null,
  183. jzsj: null,
  184. xfaqglr: null,
  185. lxdh: null,
  186. status: null,
  187. },
  188. // 表单参数
  189. form: {
  190. status: 0
  191. },
  192. // 表单校验
  193. rules: {
  194. streetId: [{ required: true, message: "所属乡镇街道不能为空", trigger: "blur" }],
  195. jmzzqmc: [{ required: true, message: "居民住宅区名称不能为空", trigger: "blur" }],
  196. xfaqglr: [{ required: true, message: "消防安全管理人不能为空", trigger: "blur" }],
  197. lxdh: [
  198. { required: true,
  199. pattern: /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
  200. message: "请输入正确的手机号码",
  201. trigger: "blur"
  202. }
  203. ],
  204. status: [{ required: true, message: "状态不能为空", trigger: "blur" }],
  205. dz: [{ required: true, message: "地址不能为空", trigger: "blur" }],
  206. }
  207. }
  208. },
  209. created() {
  210. this.getList()
  211. },
  212. methods: {
  213. UploadOpen(e){
  214. this.uploadOpen=e
  215. },
  216. //获取街道
  217. getValue(key){
  218. const res = getStreetValue(key)
  219. return res
  220. },
  221. /** 查询列表 */
  222. getList() {
  223. this.loading = true
  224. // 执行查询
  225. getStreetAnnex2Page(this.queryParams).then(response => {
  226. this.list = response.data.list
  227. this.total = response.data.total
  228. this.loading = false
  229. })
  230. },
  231. /** 取消按钮 */
  232. cancel() {
  233. this.open = false
  234. this.reset()
  235. },
  236. /** 表单重置 */
  237. reset() {
  238. this.form = {
  239. id: undefined,
  240. streetId: undefined,
  241. jmzzqmc: undefined,
  242. dz: undefined,
  243. jmrs: undefined,
  244. xfssqc: undefined,
  245. wymc: undefined,
  246. jzsj: undefined,
  247. xfaqglr: undefined,
  248. lxdh: undefined,
  249. remark: undefined,
  250. status: 0,
  251. }
  252. this.resetForm("form")
  253. },
  254. /** 搜索按钮操作 */
  255. handleQuery() {
  256. this.queryParams.pageNo = 1
  257. this.getList()
  258. },
  259. /** 重置按钮操作 */
  260. resetQuery() {
  261. this.resetForm("queryForm")
  262. this.handleQuery()
  263. },
  264. /** 新增按钮操作 */
  265. handleAdd() {
  266. this.reset()
  267. this.open = true
  268. this.title = "添加居民住宅物业服务企业消防工作基本情况登记"
  269. },
  270. /** 修改按钮操作 */
  271. handleUpdate(row) {
  272. this.reset()
  273. const id = row.id
  274. getStreetAnnex2(id).then(response => {
  275. this.form = response.data
  276. this.open = true
  277. this.title = "修改居民住宅物业服务企业消防工作基本情况登记"
  278. })
  279. },
  280. /** 提交按钮 */
  281. submitForm() {
  282. this.$refs["form"].validate((valid) => {
  283. if (!valid) {
  284. return
  285. }
  286. // 修改的提交
  287. if (this.form.id != null) {
  288. updateStreetAnnex2(this.form).then((response) => {
  289. this.$modal.msgSuccess("修改成功")
  290. this.open = false
  291. this.getList()
  292. })
  293. return
  294. }
  295. // 添加的提交
  296. createStreetAnnex2(this.form).then((response) => {
  297. this.$modal.msgSuccess("新增成功")
  298. this.open = false
  299. this.getList()
  300. })
  301. })
  302. },
  303. /** 删除按钮操作 */
  304. handleDelete(row) {
  305. const id = row.id
  306. this.$modal
  307. .confirm('是否确认删除名称为"' + row.jmzzqmc + '"的数据项?')
  308. .then(function () {
  309. return deleteStreetAnnex2(id)
  310. })
  311. .then(() => {
  312. this.getList()
  313. this.$modal.msgSuccess("删除成功")
  314. })
  315. .catch(() => { })
  316. },
  317. /** 导出按钮操作 */
  318. handleExport() {
  319. // 处理查询参数
  320. let params = { ...this.queryParams }
  321. params.pageNo = undefined
  322. params.pageSize = undefined
  323. // 执行导出
  324. this.$modal
  325. .confirm("是否确认导出?")
  326. .then(() => {
  327. this.exportLoading = true
  328. return exportStreetAnnex2Excel(params)
  329. })
  330. .then((response) => {
  331. this.$download.excel(response, "居民住宅区物业服务企业消防工作基本情况.xls")
  332. this.exportLoading = false
  333. })
  334. .catch(() => { })
  335. },
  336. /** 导入按钮操作 */
  337. handleImport() {
  338. this.uploadOpen=true
  339. this.uploadTitle="居民住宅区物业服务企业消防工作基本情况"
  340. },
  341. },
  342. }
  343. </script>