userRoles.vue 69 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604
  1. <template>
  2. <div class="content-box">
  3. <div class="left">
  4. <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
  5. <span class="cameratxt">角色管理</span>
  6. </div>
  7. <div class="scroll">
  8. <div class="middle">
  9. <div class="filter">
  10. <div class="condition">
  11. <span>关键字&nbsp;&nbsp;</span>
  12. <el-input
  13. :clearable="true"
  14. @clear="searchBtn"
  15. v-model.trim="searchInput.keyWord"
  16. class="w-50 m-2"
  17. placeholder="请输入关键字"
  18. />
  19. </div>
  20. <div class="condition">
  21. <span>创建时间&nbsp;&nbsp;</span>
  22. <el-date-picker
  23. v-model="searchInput.createTime"
  24. type="daterange"
  25. range-separator="-"
  26. start-placeholder="起始时间"
  27. end-placeholder="结束时间"
  28. format="YYYY-MM-DD"
  29. value-format="YYYY-MM-DD"
  30. :prefix-icon="Calendar"
  31. placeholder="请选择日期"
  32. />
  33. </div>
  34. <el-button
  35. color="rgba(0, 97, 255, 1)"
  36. type="primary"
  37. class="search"
  38. @click="searchBtn"
  39. ><el-icon>
  40. <Search />
  41. </el-icon>
  42. <span>查询</span></el-button
  43. >
  44. </div>
  45. <!-- 按钮列表 -->
  46. <div class="gongneng" v-if="flagBtn.tianjia == 1">
  47. <el-button
  48. type="primary"
  49. color="rgba(0, 97, 255, 1)"
  50. @click="addRolesClick"
  51. ><span>添加角色</span></el-button
  52. >
  53. </div>
  54. </div>
  55. <div class="footer" v-loading="loading">
  56. <el-table
  57. :row-class-name="tableRowClassName"
  58. :data="tableData.list"
  59. @selection-change="handleSelectionChange"
  60. style="width: 100%"
  61. default-expand-all
  62. :header-cell-style="{
  63. background: 'rgba(240, 243, 247, 1)',
  64. height: '50px',
  65. border: 0,
  66. }"
  67. >
  68. <!-- <el-table-column align="center" type="selection" width="80" /> -->
  69. <el-table-column
  70. width="100"
  71. align="center "
  72. type="index"
  73. label="序号"
  74. />
  75. <el-table-column align="center" prop="hName" label="角色级别">
  76. <template #default="{ row }">
  77. <span>{{ row.parentId == 0 ? "T0" : "T1" }}</span>
  78. </template>
  79. </el-table-column>
  80. <el-table-column align="center" prop="name" label="父级角色名称">
  81. <template #default="{ row }">
  82. <span v-if="row.parentName">{{ row.parentName }}</span>
  83. <span v-else>/</span>
  84. </template>
  85. </el-table-column>
  86. <el-table-column align="center" prop="name" label="角色名称">
  87. <template #default="{ row }">
  88. {{ row.name }}
  89. </template>
  90. </el-table-column>
  91. <el-table-column align="center" prop="createTime" label="创建时间" />
  92. <el-table-column align="center" label="操作" width="200">
  93. <template #default="{ row }">
  94. <div class="edit">
  95. <div
  96. v-if="row.parentId == 0 && flagBtn.tianjia == 1"
  97. class="look"
  98. @click="addRolesClicks(row)"
  99. >
  100. 添加
  101. </div>
  102. <div
  103. v-if="flagBtn.bianji == 1"
  104. class="look"
  105. @click="editClick(row)"
  106. >
  107. 编辑
  108. </div>
  109. <el-popconfirm
  110. v-if="flagBtn.shanchu == 1"
  111. width="220"
  112. confirm-button-text="确认"
  113. cancel-button-text="取消"
  114. :icon="InfoFilled"
  115. icon-color="#f89626"
  116. title="是否删除此角色?"
  117. @confirm="delRoles(row)"
  118. @cancel="cancelEvent"
  119. >
  120. <template #reference>
  121. <div class="del">删除</div>
  122. </template>
  123. </el-popconfirm>
  124. </div>
  125. </template>
  126. </el-table-column>
  127. </el-table>
  128. <!-- 分页组件 -->
  129. <div class="pageSize">
  130. <span></span>
  131. <el-pagination
  132. background
  133. :current-page="currentPage"
  134. :page-size="pageSize"
  135. layout="total, prev, pager, next, jumper, slot"
  136. :total="total"
  137. @update:current-page="handleCurrentChange"
  138. />
  139. </div>
  140. </div>
  141. <!-- 添加角色 -->
  142. <el-dialog
  143. class="addRoles"
  144. v-model="addRolesVisible"
  145. :close-on-click-modal="false"
  146. :close-on-press-escape="false"
  147. :title="addRolesTitle"
  148. align-center
  149. width="900"
  150. :before-close="cancelAddRoles"
  151. >
  152. <div class="rolesNames">
  153. <span>角色名称: &nbsp;&nbsp;</span>
  154. <el-input
  155. :clearable="true"
  156. v-model.trim="addRoles.name"
  157. class="w-50 m-2"
  158. style="width: 450px"
  159. placeholder="请输入角色名称"
  160. />
  161. </div>
  162. <div class="rolesName">
  163. <div class="rolePermission">角色权限: &nbsp;&nbsp;</div>
  164. <div>
  165. <!-- <el-table
  166. :row-class-name="tableRowClassName"
  167. :data="addRolesData.list"
  168. style="width: 100%"
  169. :span-method="arraySpanMethod"
  170. :header-cell-style="{
  171. background: 'rgba(240, 243, 247, 1)',
  172. height: '50px',
  173. }"
  174. >
  175. <el-table-column align="center" prop="one" label="一级" />
  176. <el-table-column align="center" prop="two" label="二级" />
  177. <el-table-column width="600" label="功能">
  178. <template #default="{ row }">
  179. <div class="checkBoxSel">
  180. <el-tree
  181. :ref="`addRolesData${row.four}`"
  182. style="max-width: 600px"
  183. :data="row.three"
  184. show-checkbox
  185. node-key="id"
  186. :props="defaultProps"
  187. default-expand-all
  188. @check="
  189. (data, nodes) => editMemberCheckChange(data, nodes, row)
  190. "
  191. />
  192. </div>
  193. </template></el-table-column
  194. >
  195. </el-table> -->
  196. <table cellspacing="0" border-collapse="collapse">
  197. <tr align="center">
  198. <td>一级</td>
  199. <td>二级</td>
  200. <td>功能</td>
  201. </tr>
  202. <!-- 房态管理 1 -->
  203. <tr align="center">
  204. <td>房态管理</td>
  205. <td>/</td>
  206. <td>
  207. <el-tree
  208. ref="addRolesData1"
  209. style="max-width: 600px"
  210. :data="addRolesList1.three"
  211. show-checkbox
  212. node-key="id"
  213. :props="defaultProps"
  214. default-expand-all
  215. @check="
  216. (data, nodes) =>
  217. editMemberCheckChange(data, nodes, addRolesList1.one)
  218. "
  219. />
  220. </td>
  221. </tr>
  222. <!-- 楼栋单元管理 2 -->
  223. <tr align="center">
  224. <td :rowspan="4">房间管理</td>
  225. <td>楼栋单元管理</td>
  226. <td>
  227. <el-tree
  228. ref="addRolesData2"
  229. style="max-width: 600px"
  230. :data="addRolesList2.three"
  231. show-checkbox
  232. node-key="id"
  233. :props="defaultProps"
  234. default-expand-all
  235. @check="
  236. (data, nodes) =>
  237. editMemberCheckChange(data, nodes, addRolesList2.two)
  238. "
  239. />
  240. </td>
  241. </tr>
  242. <!-- 房型管理 3 -->
  243. <tr align="center">
  244. <td>房型管理</td>
  245. <td>
  246. <el-tree
  247. ref="addRolesData3"
  248. style="max-width: 600px"
  249. :data="addRolesList3.three"
  250. show-checkbox
  251. node-key="id"
  252. :props="defaultProps"
  253. default-expand-all
  254. @check="
  255. (data, nodes) =>
  256. editMemberCheckChange(data, nodes, addRolesList3.two)
  257. "
  258. />
  259. </td>
  260. </tr>
  261. <!-- 房间管理 4 -->
  262. <tr align="center">
  263. <td>房间列表</td>
  264. <td>
  265. <el-tree
  266. ref="addRolesData4"
  267. style="max-width: 600px"
  268. :data="addRolesList4.three"
  269. show-checkbox
  270. node-key="id"
  271. :props="defaultProps"
  272. default-expand-all
  273. @check="
  274. (data, nodes) =>
  275. editMemberCheckChange(data, nodes, addRolesList4.two)
  276. "
  277. />
  278. </td>
  279. </tr>
  280. <!-- 房价管理 5-->
  281. <tr align="center">
  282. <td>房价管理</td>
  283. <td>
  284. <el-tree
  285. ref="addRolesData5"
  286. style="max-width: 600px"
  287. :data="addRolesList5.three"
  288. show-checkbox
  289. node-key="id"
  290. :props="defaultProps"
  291. default-expand-all
  292. @check="
  293. (data, nodes) =>
  294. editMemberCheckChange(data, nodes, addRolesList5.two)
  295. "
  296. />
  297. </td>
  298. </tr>
  299. <!-- 订单管理 6 -->
  300. <tr align="center">
  301. <td>订单管理</td>
  302. <td>/</td>
  303. <td>
  304. <el-tree
  305. ref="addRolesData6"
  306. style="max-width: 600px"
  307. :data="addRolesList6.three"
  308. show-checkbox
  309. node-key="id"
  310. :props="defaultProps"
  311. default-expand-all
  312. @check="
  313. (data, nodes) =>
  314. editMemberCheckChange(data, nodes, addRolesList6.one)
  315. "
  316. />
  317. </td>
  318. </tr>
  319. <!-- 课表管理 7 -->
  320. <tr align="center">
  321. <td :rowspan="2">授权管理</td>
  322. <td>课表管理</td>
  323. <td>
  324. <el-tree
  325. ref="addRolesData7"
  326. style="max-width: 600px"
  327. :data="addRolesList7.three"
  328. show-checkbox
  329. node-key="id"
  330. :props="defaultProps"
  331. default-expand-all
  332. @check="
  333. (data, nodes) =>
  334. editMemberCheckChange(data, nodes, addRolesList7.two)
  335. "
  336. />
  337. </td>
  338. </tr>
  339. <!-- 流程管理 8 -->
  340. <tr align="center">
  341. <td>流程管理</td>
  342. <td>
  343. <el-tree
  344. ref="addRolesData8"
  345. style="max-width: 600px"
  346. :data="addRolesList8.three"
  347. show-checkbox
  348. node-key="id"
  349. :props="defaultProps"
  350. default-expand-all
  351. @check="
  352. (data, nodes) =>
  353. editMemberCheckChange(data, nodes, addRolesList8.two)
  354. "
  355. />
  356. </td>
  357. </tr>
  358. <!-- 统计报表 9 -->
  359. <tr align="center">
  360. <td>统计报表</td>
  361. <td>/</td>
  362. <td>
  363. <el-tree
  364. ref="addRolesData9"
  365. style="max-width: 600px"
  366. :data="addRolesList9.three"
  367. show-checkbox
  368. node-key="id"
  369. :props="defaultProps"
  370. default-expand-all
  371. @check="
  372. (data, nodes) =>
  373. editMemberCheckChange(data, nodes, addRolesList9.one)
  374. "
  375. />
  376. </td>
  377. </tr>
  378. <!-- 门锁管理 10 -->
  379. <tr align="center">
  380. <td rowspan="2">设备管理</td>
  381. <td>门锁管理</td>
  382. <td>
  383. <el-tree
  384. ref="addRolesData10"
  385. style="max-width: 600px"
  386. :data="addRolesList10.three"
  387. show-checkbox
  388. node-key="id"
  389. :props="defaultProps"
  390. default-expand-all
  391. @check="
  392. (data, nodes) =>
  393. editMemberCheckChange(data, nodes, addRolesList10.two)
  394. "
  395. />
  396. </td>
  397. </tr>
  398. <!-- 水电表管理 11 -->
  399. <tr align="center">
  400. <td>水电表管理</td>
  401. <td>
  402. <el-tree
  403. ref="addRolesData11"
  404. style="max-width: 600px"
  405. :data="addRolesList11.three"
  406. show-checkbox
  407. node-key="id"
  408. :props="defaultProps"
  409. default-expand-all
  410. @check="
  411. (data, nodes) =>
  412. editMemberCheckChange(data, nodes, addRolesList11.two)
  413. "
  414. />
  415. </td>
  416. </tr>
  417. <!-- 角色管理 12 -->
  418. <tr align="center">
  419. <td rowspan="4">账号管理</td>
  420. <td>角色管理</td>
  421. <td>
  422. <el-tree
  423. ref="addRolesData12"
  424. style="max-width: 600px"
  425. :data="addRolesList12.three"
  426. show-checkbox
  427. node-key="id"
  428. :props="defaultProps"
  429. default-expand-all
  430. @check="
  431. (data, nodes) =>
  432. editMemberCheckChange(data, nodes, addRolesList12.two)
  433. "
  434. />
  435. </td>
  436. </tr>
  437. <!-- 账号管理 13 -->
  438. <tr align="center">
  439. <td>账号管理</td>
  440. <td>
  441. <el-tree
  442. ref="addRolesData13"
  443. style="max-width: 600px"
  444. :data="addRolesList13.three"
  445. show-checkbox
  446. node-key="id"
  447. :props="defaultProps"
  448. default-expand-all
  449. @check="
  450. (data, nodes) =>
  451. editMemberCheckChange(data, nodes, addRolesList13.two)
  452. "
  453. />
  454. </td>
  455. </tr>
  456. <!-- 员工管理 14 -->
  457. <tr align="center">
  458. <td>员工管理</td>
  459. <td>
  460. <el-tree
  461. ref="addRolesData14"
  462. style="max-width: 600px"
  463. :data="addRolesList14.three"
  464. show-checkbox
  465. node-key="id"
  466. :props="defaultProps"
  467. default-expand-all
  468. @check="
  469. (data, nodes) =>
  470. editMemberCheckChange(data, nodes, addRolesList14.two)
  471. "
  472. />
  473. </td>
  474. </tr>
  475. <!-- 用户管理 15 -->
  476. <tr align="center">
  477. <td>用户管理</td>
  478. <td>
  479. <el-tree
  480. ref="addRolesData15"
  481. style="max-width: 600px"
  482. :data="addRolesList15.three"
  483. show-checkbox
  484. node-key="id"
  485. :props="defaultProps"
  486. default-expand-all
  487. @check="
  488. (data, nodes) =>
  489. editMemberCheckChange(data, nodes, addRolesList15.two)
  490. "
  491. />
  492. </td>
  493. </tr>
  494. <!-- 系统设置 16 -->
  495. <tr align="center">
  496. <td>系统设置</td>
  497. <td>/</td>
  498. <td>
  499. <el-tree
  500. ref="addRolesData16"
  501. style="max-width: 600px"
  502. :data="addRolesList16.three"
  503. show-checkbox
  504. node-key="id"
  505. :props="defaultProps"
  506. default-expand-all
  507. @check="
  508. (data, nodes) =>
  509. editMemberCheckChange(data, nodes, addRolesList16.one)
  510. "
  511. />
  512. </td>
  513. </tr>
  514. </table>
  515. </div>
  516. </div>
  517. <div class="options">
  518. <div class="btn">
  519. <el-button
  520. color="rgba(41, 109, 227, 1)"
  521. class="queding"
  522. type="primary"
  523. @click="confirmEdit"
  524. >
  525. 确定
  526. </el-button>
  527. <el-button @click="cancelAddRoles">取消</el-button>
  528. </div>
  529. </div>
  530. </el-dialog>
  531. <!-- 编辑按钮 -->
  532. <el-dialog
  533. class="editDialog"
  534. v-model="editVisible"
  535. :close-on-click-modal="false"
  536. :close-on-press-escape="false"
  537. :title="titleDialog"
  538. align-center
  539. width="550"
  540. :before-close="cancelEdit"
  541. >
  542. <el-form
  543. ref="editRef"
  544. :model="editRuleForm"
  545. :rules="editRules"
  546. label-width="90px"
  547. class="demo-ruleForm"
  548. :size="formSize"
  549. label-position="left"
  550. status-icon
  551. >
  552. <el-form-item label="水电编码 :" prop="SD_encoding">
  553. <el-input
  554. v-model.trim="editRuleForm.SD_encoding"
  555. placeholder="请输入水电编码"
  556. clearable
  557. style="width: 500px"
  558. />
  559. </el-form-item>
  560. <el-form-item label="电表编码 :" prop="DB_encoding">
  561. <el-input
  562. v-model.trim="editRuleForm.DB_encoding"
  563. placeholder="请输入电表编码"
  564. clearable
  565. style="width: 500px"
  566. />
  567. </el-form-item>
  568. <el-form-item label="房间号 :" prop="roomNum">
  569. <!-- <el-tree
  570. :data="roomNumData"
  571. :props="{
  572. label: 'label',
  573. children: 'children',
  574. value: 'value',
  575. disabled: 'disabled',
  576. }"
  577. node-key="id"
  578. show-checkbox
  579. ref="roomNumRef"
  580. @node-click="roomNumClick"
  581. @check-change="handleCheckChange"
  582. /> -->
  583. <el-cascader
  584. v-model="editRuleForm.roomNum"
  585. :options="roomNumData"
  586. :show-all-levels="false"
  587. />
  588. </el-form-item>
  589. <el-form-item class="options">
  590. <el-button
  591. color="rgba(41, 109, 227, 1)"
  592. class="queding"
  593. type="primary"
  594. @click="confirmEdit(editRef)"
  595. >
  596. 确定
  597. </el-button>
  598. <el-button @click="cancelEdit">取消</el-button>
  599. </el-form-item>
  600. </el-form>
  601. </el-dialog>
  602. </div>
  603. </div>
  604. </template>
  605. <script setup>
  606. import {
  607. ref,
  608. reactive,
  609. watch,
  610. nextTick,
  611. onBeforeMount,
  612. onUnmounted,
  613. } from "vue";
  614. import { useRouter } from "vue-router";
  615. import { ElMessage, ElMessageBox, ElLoading } from "element-plus";
  616. import { Calendar } from "@element-plus/icons-vue";
  617. import vidiconsApi from "@/api/vidicons.js";
  618. import { dayjs } from "element-plus";
  619. import lodash from "lodash";
  620. import axios from "axios";
  621. import { useStore } from "vuex";
  622. const store = useStore();
  623. const api = ref("");
  624. const router = useRouter();
  625. // 表格数据
  626. const loading = ref(false);
  627. const tableData = reactive({
  628. list: [],
  629. });
  630. const flagBtn = ref(); // 按钮权限
  631. const searchInput = reactive({
  632. keyWord: "",
  633. createTime: "",
  634. }); // 搜索按钮数据
  635. watch(
  636. () => searchInput.createTime,
  637. (newVal, oldVal) => {
  638. console.log("监听时间:", newVal);
  639. if (newVal == null) {
  640. getList();
  641. }
  642. }
  643. );
  644. const currentPage = ref(1); // 当前页
  645. const pageSize = ref(10);
  646. const total = ref(); // 当前总数
  647. // 添加角色
  648. const addRolesTitle = ref("添加角色");
  649. const addRolesVisible = ref(false);
  650. const parentId = ref();
  651. const addRoles = reactive({
  652. id: "",
  653. name: "",
  654. adminMenuId: "",
  655. houseStatusManagement: [], // 房态管理 1
  656. buildingManagement: [], // 楼栋单元管理 2
  657. houseTypeManagement: [], // 房型管理 3
  658. houseNumberManagement: [], // 房间列表 4
  659. housePriceManagement: [], // 房价管理 5
  660. houseOrderManagement: [], //订单管理 6
  661. dutyManagement: [], //值班管理 7
  662. processManagement: [], //流程管理 8
  663. reportManagement: [], //统计报表 9
  664. doorLockManagement: [], //门锁管理 10
  665. hydropowerManagement: [], //水电表管理 11
  666. roleManagement: [], //角色管理 12
  667. accountManagement: [], //账号管理 13
  668. staffManagement: [], // 员工管理 14
  669. userManagement: [], //用户管理 15
  670. systemManagement: [], //系统设置 16
  671. });
  672. const addRolesData1 = ref(); // 房态管理
  673. const addRolesList1 = reactive({
  674. one: "房态管理",
  675. two: "/",
  676. three: [
  677. {
  678. name: "全部",
  679. id: 0,
  680. children: [
  681. { name: "预定", id: 1 },
  682. { name: "退房", id: 2 },
  683. { name: "维修", id: 3 },
  684. { name: "关房", id: 4 },
  685. { name: "置脏", id: 5 },
  686. { name: "置净", id: 6 },
  687. { name: "退款", id: 7 },
  688. { name: "入住", id: 8 },
  689. { name: "锁房", id: 9 },
  690. // { name: "日志", id: 10 },
  691. { name: "换房", id: 11 },
  692. { name: "开房", id: 12 },
  693. // { name: "门锁管理", id: 13 },
  694. { name: "查看界面", id: 14 },
  695. { name: "开电", id: 15 },
  696. { name: "关电", id: 16 },
  697. { name: "取消预定", id: 17 },
  698. { name: "取消维修", id: 18 },
  699. { name: "查看密码", id: 19 },
  700. { name: "退款", id: 20 },
  701. ],
  702. },
  703. ],
  704. four: "1",
  705. checkedSel: [],
  706. });
  707. const addRolesData2 = ref(); // 楼栋单元管理
  708. const addRolesList2 = reactive({
  709. one: "房间管理",
  710. two: "楼栋单元管理",
  711. three: [
  712. {
  713. name: "全部",
  714. id: 0,
  715. children: [
  716. { name: "添加", id: 1 },
  717. { name: "编辑", id: 2 },
  718. { name: "删除", id: 3 },
  719. { name: "查看界面", id: 4 },
  720. ],
  721. },
  722. ],
  723. four: "2",
  724. checkedSel: [],
  725. });
  726. const addRolesData3 = ref(); // 房型管理
  727. const addRolesList3 = reactive({
  728. one: "房间管理",
  729. two: "房型管理",
  730. three: [
  731. {
  732. name: "全部",
  733. id: 0,
  734. children: [
  735. { name: "添加", id: 1 },
  736. { name: "修改", id: 2 },
  737. { name: "删除", id: 3 },
  738. { name: "查看界面", id: 6 },
  739. ],
  740. },
  741. ],
  742. four: "3",
  743. checkedSel: [],
  744. });
  745. const addRolesData4 = ref(); // 房间管理
  746. const addRolesList4 = reactive({
  747. one: "房间管理",
  748. two: "房间列表",
  749. three: [
  750. {
  751. name: "全部",
  752. id: 0,
  753. children: [
  754. { name: "添加", id: 1 },
  755. { name: "编辑", id: 2 },
  756. { name: "删除", id: 3 },
  757. { name: "查看界面", id: 4 },
  758. { name: "批量导入", id: 5 },
  759. ],
  760. },
  761. ],
  762. four: "4",
  763. checkedSel: [],
  764. });
  765. const addRolesData5 = ref(); // 房价管理
  766. const addRolesList5 = reactive({
  767. one: "房间管理",
  768. two: "房价管理",
  769. three: [
  770. {
  771. name: "全部",
  772. id: 0,
  773. children: [
  774. { name: "批量改价", id: 4 },
  775. { name: "改价记录", id: 5 },
  776. { name: "查看界面", id: 7 },
  777. ],
  778. },
  779. ],
  780. four: "5",
  781. checkedSel: [],
  782. });
  783. const addRolesData6 = ref(); // 订单管理
  784. const addRolesList6 = reactive({
  785. one: "订单管理",
  786. two: "/",
  787. three: [
  788. {
  789. name: "全部",
  790. id: 0,
  791. children: [
  792. { name: "取消", id: 1 },
  793. { name: "详情", id: 2 },
  794. { name: "入住", id: 3 },
  795. { name: "退款", id: 4 },
  796. { name: "退房", id: 5 },
  797. { name: "查看界面", id: 6 },
  798. // { name: "删除", id: 7 },
  799. { name: "换房", id: 8 },
  800. { name: "导出", id: 9 },
  801. { name: "备注", id: 10 },
  802. ],
  803. },
  804. ],
  805. four: "6",
  806. checkedSel: [],
  807. });
  808. const addRolesData7 = ref(); // 课表管理
  809. const addRolesList7 = reactive({
  810. one: "授权管理",
  811. two: "值班管理",
  812. three: [
  813. {
  814. name: "全部",
  815. id: 0,
  816. children: [
  817. { name: "导入值班", id: 1 },
  818. { name: "导出", id: 2 },
  819. { name: "查看界面", id: 3 },
  820. { name: "删除", id: 4 },
  821. { name: "添加", id: 5 },
  822. ],
  823. },
  824. ],
  825. four: "7",
  826. checkedSel: [],
  827. });
  828. const addRolesData8 = ref(); // 流程管理
  829. const addRolesList8 = reactive({
  830. one: "授权管理",
  831. two: "流程管理",
  832. three: [
  833. {
  834. name: "全部",
  835. id: 0,
  836. children: [
  837. // { name: "添加流程", id: 1 },
  838. // { name: "编辑流程", id: 2 },
  839. { name: "同意", id: 3 },
  840. { name: "驳回", id: 4 },
  841. { name: "查看界面", id: 5 },
  842. { name: "规则设置", id: 6 },
  843. // { name: "导出", id: 7 },
  844. ],
  845. },
  846. ],
  847. four: "8",
  848. checkedSel: [],
  849. });
  850. const addRolesData9 = ref(); // 统计报表
  851. const addRolesList9 = reactive({
  852. one: "统计报表",
  853. two: "/",
  854. three: [
  855. {
  856. name: "全部",
  857. id: 0,
  858. children: [
  859. { name: "查看界面", id: 1 },
  860. { name: "导出", id: 2 },
  861. { name: "详情", id: 3 },
  862. ],
  863. },
  864. ],
  865. four: "9",
  866. checkedSel: [],
  867. });
  868. const addRolesData10 = ref(); // 门锁管理
  869. const addRolesList10 = reactive({
  870. one: "设备管理",
  871. two: "门锁管理",
  872. three: [
  873. {
  874. name: "全部",
  875. id: 0,
  876. children: [
  877. // { name: "添加", id: 1 },
  878. // { name: "编辑", id: 2 },
  879. // { name: "删除", id: 3 },
  880. { name: "查看界面", id: 4 },
  881. // { name: "导出", id: 5 },
  882. { name: "导入", id: 6 },
  883. // { name: "批量重置密码", id: 7 },
  884. // { name: "重置密码", id: 8 },
  885. // { name: "添加总卡", id: 9 },
  886. // { name: "禁用门锁", id: 10 },
  887. { name: "钥匙管理", id: 11 },
  888. { name: "消息列表", id: 12 },
  889. { name: "远程开锁", id: 13 },
  890. { name: "解绑设备", id: 14 },
  891. { name: "NFC设置", id: 15 },
  892. ],
  893. },
  894. ],
  895. four: "10",
  896. checkedSel: [],
  897. });
  898. const addRolesData11 = ref(); // 水电表管理
  899. const addRolesList11 = reactive({
  900. one: "设备管理",
  901. two: "水电表管理",
  902. three: [
  903. {
  904. name: "全部",
  905. id: 0,
  906. children: [
  907. { name: "添加", id: 1 },
  908. { name: "编辑", id: 2 },
  909. { name: "删除", id: 3 },
  910. { name: "查看界面", id: 4 },
  911. { name: "导出", id: 5 },
  912. { name: "导入", id: 6 },
  913. ],
  914. },
  915. ],
  916. four: "11",
  917. checkedSel: [],
  918. });
  919. const addRolesData12 = ref(); // 角色管理
  920. const addRolesList12 = reactive({
  921. one: "账号管理",
  922. two: "角色管理",
  923. three: [
  924. {
  925. name: "全部",
  926. id: 0,
  927. children: [
  928. { name: "添加", id: 1 },
  929. { name: "编辑", id: 2 },
  930. { name: "删除", id: 3 },
  931. { name: "查看界面", id: 4 },
  932. // { name: "导出", id: 5 },
  933. // { name: "导入", id: 6 },
  934. ],
  935. },
  936. ],
  937. four: "12",
  938. checkedSel: [],
  939. });
  940. const addRolesData13 = ref(); // 账号管理
  941. const addRolesList13 = reactive({
  942. one: "账号管理",
  943. two: "账号管理",
  944. three: [
  945. {
  946. name: "全部",
  947. id: 0,
  948. children: [
  949. { name: "添加", id: 1 },
  950. { name: "编辑", id: 2 },
  951. { name: "删除", id: 3 },
  952. { name: "查看界面", id: 4 },
  953. // { name: "导出", id: 5 },
  954. // { name: "导入", id: 6 },
  955. ],
  956. },
  957. ],
  958. four: "13",
  959. checkedSel: [],
  960. });
  961. const addRolesData14 = ref(); // 员工管理
  962. const addRolesList14 = reactive({
  963. one: "账号管理",
  964. two: "员工管理",
  965. three: [
  966. {
  967. name: "全部",
  968. id: 0,
  969. children: [
  970. { name: "添加", id: 1 },
  971. { name: "编辑", id: 2 },
  972. { name: "删除", id: 3 },
  973. { name: "查看界面", id: 4 },
  974. // { name: "导出", id: 5 },
  975. // { name: "导入", id: 6 },
  976. ],
  977. },
  978. ],
  979. four: "14",
  980. checkedSel: [],
  981. });
  982. const addRolesData15 = ref(); // 用户管理
  983. const addRolesList15 = reactive({
  984. one: "账号管理",
  985. two: "用户管理",
  986. three: [
  987. {
  988. name: "全部",
  989. id: 0,
  990. children: [
  991. // { name: "添加", id: 1 },
  992. // { name: "编辑", id: 2 },
  993. // { name: "删除", id: 3 },
  994. { name: "查看界面", id: 4 },
  995. // { name: "导出", id: 5 },
  996. // { name: "导入", id: 6 },
  997. ],
  998. },
  999. ],
  1000. four: "15",
  1001. checkedSel: [],
  1002. });
  1003. const addRolesData16 = ref(); // 系统设置
  1004. const addRolesList16 = reactive({
  1005. one: "系统设置",
  1006. two: "/",
  1007. three: [
  1008. {
  1009. name: "全部",
  1010. id: 0,
  1011. children: [
  1012. { name: "退房设置", id: 1 },
  1013. { name: "公寓设置", id: 2 },
  1014. { name: "补助设置", id: 3 },
  1015. // { name: "催缴设置", id: 4 },
  1016. { name: "设施服务设置", id: 5 },
  1017. { name: "查看界面", id: 6 },
  1018. ],
  1019. },
  1020. ],
  1021. four: "16",
  1022. checkedSel: [],
  1023. });
  1024. // const addRolesData = reactive({
  1025. // list: [
  1026. // {
  1027. // one: "房态管理",
  1028. // two: "/",
  1029. // three: [
  1030. // {
  1031. // name: "全部",
  1032. // id: 0,
  1033. // children: [
  1034. // { name: "预定", id: 1 },
  1035. // { name: "退房", id: 2 },
  1036. // { name: "维修", id: 3 },
  1037. // { name: "关房", id: 4 },
  1038. // { name: "置脏", id: 5 },
  1039. // { name: "置净", id: 6 },
  1040. // { name: "退款", id: 7 },
  1041. // { name: "入住", id: 8 },
  1042. // { name: "锁房", id: 9 },
  1043. // // { name: "日志", id: 10 },
  1044. // { name: "换房", id: 11 },
  1045. // { name: "开房", id: 12 },
  1046. // // { name: "门锁管理", id: 13 },
  1047. // { name: "查看界面", id: 14 },
  1048. // { name: "开电", id: 15 },
  1049. // { name: "关电", id: 16 },
  1050. // { name: "取消预定", id: 17 },
  1051. // { name: "取消维修", id: 18 },
  1052. // ],
  1053. // },
  1054. // ],
  1055. // four: "1",
  1056. // checkedSel: [],
  1057. // },
  1058. // {
  1059. // one: "房间管理",
  1060. // two: "楼栋单元管理",
  1061. // three: [
  1062. // {
  1063. // name: "全部",
  1064. // id: 0,
  1065. // children: [
  1066. // { name: "添加", id: 1 },
  1067. // { name: "修改", id: 2 },
  1068. // { name: "删除", id: 3 },
  1069. // { name: "查看界面", id: 4 },
  1070. // ],
  1071. // },
  1072. // ],
  1073. // four: "2",
  1074. // checkedSel: [],
  1075. // },
  1076. // {
  1077. // one: "房间管理",
  1078. // two: "房型管理",
  1079. // three: [
  1080. // {
  1081. // name: "全部",
  1082. // id: 0,
  1083. // children: [
  1084. // { name: "添加", id: 1 },
  1085. // { name: "修改", id: 2 },
  1086. // { name: "删除", id: 3 },
  1087. // { name: "查看界面", id: 6 },
  1088. // ],
  1089. // },
  1090. // ],
  1091. // four: "3",
  1092. // checkedSel: [],
  1093. // },
  1094. // {
  1095. // one: "房间管理",
  1096. // two: "房间列表",
  1097. // three: [
  1098. // {
  1099. // name: "全部",
  1100. // id: 0,
  1101. // children: [
  1102. // { name: "添加", id: 1 },
  1103. // { name: "修改", id: 2 },
  1104. // { name: "删除", id: 3 },
  1105. // { name: "查看界面", id: 4 },
  1106. // { name: "批量导入", id: 5 },
  1107. // ],
  1108. // },
  1109. // ],
  1110. // four: "4",
  1111. // checkedSel: [],
  1112. // },
  1113. // {
  1114. // one: "房间管理",
  1115. // two: "房价管理",
  1116. // three: [
  1117. // {
  1118. // name: "全部",
  1119. // id: 0,
  1120. // children: [
  1121. // { name: "批量改价", id: 4 },
  1122. // { name: "改价记录", id: 5 },
  1123. // { name: "查看界面", id: 7 },
  1124. // ],
  1125. // },
  1126. // ],
  1127. // four: "5",
  1128. // checkedSel: [],
  1129. // },
  1130. // {
  1131. // one: "订单管理",
  1132. // two: "/",
  1133. // three: [
  1134. // {
  1135. // name: "全部",
  1136. // id: 0,
  1137. // children: [
  1138. // { name: "取消", id: 1 },
  1139. // { name: "详情", id: 2 },
  1140. // { name: "入住", id: 3 },
  1141. // { name: "退款", id: 4 },
  1142. // { name: "退房", id: 5 },
  1143. // { name: "查看界面", id: 6 },
  1144. // // { name: "删除", id: 7 },
  1145. // { name: "换房", id: 8 },
  1146. // { name: "导出", id: 9 },
  1147. // ],
  1148. // },
  1149. // ],
  1150. // four: "6",
  1151. // checkedSel: [],
  1152. // },
  1153. // {
  1154. // one: "授权管理",
  1155. // two: "值班管理",
  1156. // three: [
  1157. // {
  1158. // name: "全部",
  1159. // id: 0,
  1160. // children: [
  1161. // { name: "导入值班", id: 1 },
  1162. // { name: "导出", id: 2 },
  1163. // { name: "查看界面", id: 3 },
  1164. // ],
  1165. // },
  1166. // ],
  1167. // four: "7",
  1168. // checkedSel: [],
  1169. // },
  1170. // {
  1171. // one: "授权管理",
  1172. // two: "流程管理",
  1173. // three: [
  1174. // {
  1175. // name: "全部",
  1176. // id: 0,
  1177. // children: [
  1178. // // { name: "添加流程", id: 1 },
  1179. // // { name: "编辑流程", id: 2 },
  1180. // { name: "同意", id: 3 },
  1181. // { name: "驳回", id: 4 },
  1182. // { name: "查看界面", id: 5 },
  1183. // { name: "规则设置", id: 6 },
  1184. // // { name: "导出", id: 7 },
  1185. // ],
  1186. // },
  1187. // ],
  1188. // four: "8",
  1189. // checkedSel: [],
  1190. // },
  1191. // {
  1192. // one: "统计报表",
  1193. // two: "/",
  1194. // three: [
  1195. // {
  1196. // name: "全部",
  1197. // id: 0,
  1198. // children: [
  1199. // { name: "查看界面", id: 1 },
  1200. // { name: "导出", id: 2 },
  1201. // { name: "详情", id: 3 },
  1202. // ],
  1203. // },
  1204. // ],
  1205. // four: "9",
  1206. // checkedSel: [],
  1207. // },
  1208. // {
  1209. // one: "设备管理",
  1210. // two: "门锁管理",
  1211. // three: [
  1212. // {
  1213. // name: "全部",
  1214. // id: 0,
  1215. // children: [
  1216. // // { name: "添加", id: 1 },
  1217. // // { name: "编辑", id: 2 },
  1218. // // { name: "删除", id: 3 },
  1219. // { name: "查看界面", id: 4 },
  1220. // // { name: "导出", id: 5 },
  1221. // { name: "导入", id: 6 },
  1222. // // { name: "批量重置密码", id: 7 },
  1223. // // { name: "重置密码", id: 8 },
  1224. // // { name: "添加总卡", id: 9 },
  1225. // // { name: "禁用门锁", id: 10 },
  1226. // { name: "钥匙管理", id: 11 },
  1227. // { name: "消息列表", id: 12 },
  1228. // { name: "远程开锁", id: 13 },
  1229. // { name: "解绑设备", id: 14 },
  1230. // { name: "NFC设置", id: 15 },
  1231. // ],
  1232. // },
  1233. // ],
  1234. // four: "10",
  1235. // checkedSel: [],
  1236. // },
  1237. // {
  1238. // one: "设备管理",
  1239. // two: "水电表管理",
  1240. // three: [
  1241. // {
  1242. // name: "全部",
  1243. // id: 0,
  1244. // children: [
  1245. // { name: "添加", id: 1 },
  1246. // { name: "编辑", id: 2 },
  1247. // { name: "删除", id: 3 },
  1248. // { name: "查看界面", id: 4 },
  1249. // { name: "导出", id: 5 },
  1250. // { name: "导入", id: 6 },
  1251. // ],
  1252. // },
  1253. // ],
  1254. // four: "11",
  1255. // checkedSel: [],
  1256. // },
  1257. // {
  1258. // one: "账号管理",
  1259. // two: "角色管理",
  1260. // three: [
  1261. // {
  1262. // name: "全部",
  1263. // id: 0,
  1264. // children: [
  1265. // { name: "添加", id: 1 },
  1266. // { name: "编辑", id: 2 },
  1267. // { name: "删除", id: 3 },
  1268. // { name: "查看界面", id: 4 },
  1269. // // { name: "导出", id: 5 },
  1270. // // { name: "导入", id: 6 },
  1271. // ],
  1272. // },
  1273. // ],
  1274. // four: "12",
  1275. // checkedSel: [],
  1276. // },
  1277. // {
  1278. // one: "账号管理",
  1279. // two: "账号管理",
  1280. // three: [
  1281. // {
  1282. // name: "全部",
  1283. // id: 0,
  1284. // children: [
  1285. // { name: "添加", id: 1 },
  1286. // { name: "编辑", id: 2 },
  1287. // { name: "删除", id: 3 },
  1288. // { name: "查看界面", id: 4 },
  1289. // // { name: "导出", id: 5 },
  1290. // // { name: "导入", id: 6 },
  1291. // ],
  1292. // },
  1293. // ],
  1294. // four: "13",
  1295. // checkedSel: [],
  1296. // },
  1297. // {
  1298. // one: "账号管理",
  1299. // two: "员工管理",
  1300. // three: [
  1301. // {
  1302. // name: "全部",
  1303. // id: 0,
  1304. // children: [
  1305. // { name: "添加", id: 1 },
  1306. // { name: "编辑", id: 2 },
  1307. // { name: "删除", id: 3 },
  1308. // { name: "查看界面", id: 4 },
  1309. // // { name: "导出", id: 5 },
  1310. // // { name: "导入", id: 6 },
  1311. // ],
  1312. // },
  1313. // ],
  1314. // four: "14",
  1315. // checkedSel: [],
  1316. // },
  1317. // {
  1318. // one: "账号管理",
  1319. // two: "用户管理",
  1320. // three: [
  1321. // {
  1322. // name: "全部",
  1323. // id: 0,
  1324. // children: [
  1325. // { name: "添加", id: 1 },
  1326. // { name: "编辑", id: 2 },
  1327. // { name: "删除", id: 3 },
  1328. // { name: "查看界面", id: 4 },
  1329. // // { name: "导出", id: 5 },
  1330. // // { name: "导入", id: 6 },
  1331. // ],
  1332. // },
  1333. // ],
  1334. // four: "15",
  1335. // checkedSel: [],
  1336. // },
  1337. // {
  1338. // one: "系统设置",
  1339. // two: "/",
  1340. // three: [
  1341. // {
  1342. // name: "全部",
  1343. // id: 0,
  1344. // children: [
  1345. // { name: "退房设置", id: 1 },
  1346. // { name: "公寓设置", id: 2 },
  1347. // { name: "补助设置", id: 3 },
  1348. // { name: "催缴设置", id: 4 },
  1349. // { name: "设施服务设置", id: 5 },
  1350. // { name: "查看界面", id: 6 },
  1351. // ],
  1352. // },
  1353. // ],
  1354. // four: "16",
  1355. // checkedSel: [],
  1356. // },
  1357. // ],
  1358. // });
  1359. const defaultProps = ref({
  1360. children: "children",
  1361. label: "name",
  1362. });
  1363. // 编辑功能
  1364. const titleDialog = ref("");
  1365. const editVisible = ref(false);
  1366. const editRef = ref();
  1367. const editRuleForm = reactive({
  1368. SD_encoding: "",
  1369. DB_encoding: "",
  1370. roomNum: "",
  1371. id: "",
  1372. });
  1373. // 树形结构配置
  1374. const roomNumRef = ref();
  1375. const roomNumData = [
  1376. {
  1377. value: 1,
  1378. label: "Level one 1",
  1379. children: [
  1380. {
  1381. value: 11,
  1382. label: "Level two 1-1",
  1383. },
  1384. {
  1385. value: 12,
  1386. label: "Level two 1-2",
  1387. },
  1388. ],
  1389. },
  1390. {
  1391. value: 2,
  1392. label: "Level one 2",
  1393. children: [
  1394. {
  1395. value: 21,
  1396. label: "Level two 2-1",
  1397. },
  1398. {
  1399. value: 22,
  1400. label: "Level two 2-2",
  1401. },
  1402. ],
  1403. },
  1404. ];
  1405. // 表单验证
  1406. const editRules = reactive({
  1407. SD_encoding: [
  1408. { required: true, message: "水电编码不能为空", trigger: "blur" },
  1409. ],
  1410. DB_encoding: [
  1411. {
  1412. required: true,
  1413. message: "电表编码不能为空",
  1414. trigger: "blur",
  1415. },
  1416. ],
  1417. roomNum: [
  1418. {
  1419. required: true,
  1420. message: "房间号不能为空",
  1421. trigger: "blur",
  1422. },
  1423. ],
  1424. });
  1425. // 查看房型列表
  1426. const getList = async () => {
  1427. loading.value = true;
  1428. let data = {
  1429. page: currentPage.value,
  1430. size: pageSize.value,
  1431. keyWord: searchInput.keyWord, // 房型名称
  1432. adminMenuId: sessionStorage.getItem("permissionSettingId"),
  1433. };
  1434. if (searchInput.createTime) {
  1435. data.startTime = searchInput.createTime[0];
  1436. data.endTime = searchInput.createTime[1];
  1437. }
  1438. let res = await axios({
  1439. method: "get",
  1440. url: api.value + "/admin-menu/adminListPage",
  1441. headers: {
  1442. token: sessionStorage.getItem("token"),
  1443. user_head: sessionStorage.getItem("user_head"),
  1444. },
  1445. params: data,
  1446. });
  1447. console.log(res, "角色管理");
  1448. if (res.data.code == 200) {
  1449. loading.value = false;
  1450. tableData.list = res.data.data.records;
  1451. total.value = res.data.data.total;
  1452. } else {
  1453. loading.value = false;
  1454. ElMessage({
  1455. type: "error",
  1456. showClose: true,
  1457. message: res.data.message,
  1458. center: true,
  1459. });
  1460. }
  1461. };
  1462. // 搜索功能
  1463. const searchBtn = lodash.debounce(async () => {
  1464. getList();
  1465. }, 300);
  1466. // 添加角色(------------------------------------------------)
  1467. // 合并表格行或列
  1468. // const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
  1469. // if (columnIndex === 0) {
  1470. // if (rowIndex === 1) {
  1471. // return {
  1472. // rowspan: 2,
  1473. // colspan: 1,
  1474. // };
  1475. // }
  1476. // if (rowIndex === 2) {
  1477. // return {
  1478. // rowspan: 0,
  1479. // colspan: 0,
  1480. // };
  1481. // }
  1482. // if (rowIndex === 4) {
  1483. // return {
  1484. // rowspan: 2,
  1485. // colspan: 1,
  1486. // };
  1487. // }
  1488. // if (rowIndex === 5) {
  1489. // return {
  1490. // rowspan: 0,
  1491. // colspan: 0,
  1492. // };
  1493. // }
  1494. // if (rowIndex === 7) {
  1495. // return {
  1496. // rowspan: 2,
  1497. // colspan: 1,
  1498. // };
  1499. // }
  1500. // if (rowIndex === 8) {
  1501. // return {
  1502. // rowspan: 0,
  1503. // colspan: 0,
  1504. // };
  1505. // }
  1506. // if (rowIndex === 9) {
  1507. // return {
  1508. // rowspan: 2,
  1509. // colspan: 1,
  1510. // };
  1511. // }
  1512. // if (rowIndex === 10) {
  1513. // return {
  1514. // rowspan: 0,
  1515. // colspan: 0,
  1516. // };
  1517. // }
  1518. // }
  1519. // };
  1520. const addRolesClick = () => {
  1521. addRolesTitle.value = "添加一级角色";
  1522. parentId.value = "";
  1523. addRoles.name = "";
  1524. addRoles.id = "";
  1525. addRoles.adminMenuId=""
  1526. addRolesVisible.value = true;
  1527. if (addRolesData1.value) {
  1528. addRolesData1.value.setCheckedKeys([]);
  1529. }
  1530. if (addRolesData2.value) {
  1531. addRolesData2.value.setCheckedKeys([]);
  1532. }
  1533. if (addRolesData3.value) {
  1534. addRolesData3.value.setCheckedKeys([]);
  1535. }
  1536. if (addRolesData4.value) {
  1537. addRolesData4.value.setCheckedKeys([]);
  1538. }
  1539. if (addRolesData5.value) {
  1540. addRolesData5.value.setCheckedKeys([]);
  1541. }
  1542. if (addRolesData6.value) {
  1543. addRolesData6.value.setCheckedKeys([]);
  1544. }
  1545. if (addRolesData7.value) {
  1546. addRolesData7.value.setCheckedKeys([]);
  1547. }
  1548. if (addRolesData8.value) {
  1549. addRolesData8.value.setCheckedKeys([]);
  1550. }
  1551. if (addRolesData9.value) {
  1552. addRolesData9.value.setCheckedKeys([]);
  1553. }
  1554. if (addRolesData10.value) {
  1555. addRolesData10.value.setCheckedKeys([]);
  1556. }
  1557. if (addRolesData11.value) {
  1558. addRolesData11.value.setCheckedKeys([]);
  1559. }
  1560. if (addRolesData12.value) {
  1561. addRolesData12.value.setCheckedKeys([]);
  1562. }
  1563. if (addRolesData13.value) {
  1564. addRolesData13.value.setCheckedKeys([]);
  1565. }
  1566. if (addRolesData14.value) {
  1567. addRolesData14.value.setCheckedKeys([]);
  1568. }
  1569. if (addRolesData15.value) {
  1570. addRolesData15.value.setCheckedKeys([]);
  1571. }
  1572. if (addRolesData16.value) {
  1573. addRolesData16.value.setCheckedKeys([]);
  1574. }
  1575. };
  1576. const addRolesClicks = (row) => {
  1577. addRolesTitle.value = "添加二级角色";
  1578. parentId.value = row.id;
  1579. addRoles.name = "";
  1580. addRoles.id = "";
  1581. addRoles.adminMenuId=""
  1582. addRolesVisible.value = true;
  1583. if (addRolesData1.value) {
  1584. addRolesData1.value.setCheckedKeys([]);
  1585. }
  1586. if (addRolesData2.value) {
  1587. addRolesData2.value.setCheckedKeys([]);
  1588. }
  1589. if (addRolesData3.value) {
  1590. addRolesData3.value.setCheckedKeys([]);
  1591. }
  1592. if (addRolesData4.value) {
  1593. addRolesData4.value.setCheckedKeys([]);
  1594. }
  1595. if (addRolesData5.value) {
  1596. addRolesData5.value.setCheckedKeys([]);
  1597. }
  1598. if (addRolesData6.value) {
  1599. addRolesData6.value.setCheckedKeys([]);
  1600. }
  1601. if (addRolesData7.value) {
  1602. addRolesData7.value.setCheckedKeys([]);
  1603. }
  1604. if (addRolesData8.value) {
  1605. addRolesData8.value.setCheckedKeys([]);
  1606. }
  1607. if (addRolesData9.value) {
  1608. addRolesData9.value.setCheckedKeys([]);
  1609. }
  1610. if (addRolesData10.value) {
  1611. addRolesData10.value.setCheckedKeys([]);
  1612. }
  1613. if (addRolesData11.value) {
  1614. addRolesData11.value.setCheckedKeys([]);
  1615. }
  1616. if (addRolesData12.value) {
  1617. addRolesData12.value.setCheckedKeys([]);
  1618. }
  1619. if (addRolesData13.value) {
  1620. addRolesData13.value.setCheckedKeys([]);
  1621. }
  1622. if (addRolesData14.value) {
  1623. addRolesData14.value.setCheckedKeys([]);
  1624. }
  1625. if (addRolesData15.value) {
  1626. addRolesData15.value.setCheckedKeys([]);
  1627. }
  1628. if (addRolesData16.value) {
  1629. addRolesData16.value.setCheckedKeys([]);
  1630. }
  1631. };
  1632. const cancelAddRoles = () => {
  1633. addRolesVisible.value = false;
  1634. };
  1635. //编辑按钮 (-------------------------------------------)
  1636. const editClick = async (row) => {
  1637. addRolesTitle.value = "编辑角色";
  1638. addRolesVisible.value = true;
  1639. addRoles.name = row.name;
  1640. parentId.value = row.parentId;
  1641. console.log(row);
  1642. let data = {
  1643. adminMenuId: row.id,
  1644. permissionSettingId: sessionStorage.getItem("permissionSettingId"),
  1645. };
  1646. let res = await axios({
  1647. method: "get",
  1648. url: api.value + "/admin-menu/getMenuPermissionSetting",
  1649. headers: {
  1650. token: sessionStorage.getItem("token"),
  1651. user_head: sessionStorage.getItem("user_head"),
  1652. },
  1653. params: data,
  1654. });
  1655. console.log(res);
  1656. if (res.data.code == 200) {
  1657. addRoles.id = res.data.data.id;
  1658. addRoles.adminMenuId = res.data.data.adminMenuId;
  1659. // 房态管理 1
  1660. addRoles.houseStatusManagement =
  1661. res.data.data.houseStatusManagement.split(",");
  1662. addRolesData1.value.setCheckedKeys(
  1663. res.data.data.houseStatusManagement.split(",")
  1664. );
  1665. // 楼栋单元管理 2
  1666. if (res.data.data.buildingManagement) {
  1667. addRoles.buildingManagement = res.data.data.buildingManagement.split(",");
  1668. addRolesData2.value.setCheckedKeys(
  1669. res.data.data.buildingManagement.split(",")
  1670. );
  1671. }
  1672. // 房型管理 3
  1673. addRoles.houseTypeManagement = res.data.data.houseTypeManagement.split(",");
  1674. addRolesData3.value.setCheckedKeys(
  1675. res.data.data.houseTypeManagement.split(",")
  1676. );
  1677. // 房间列表 4
  1678. if (res.data.data.houseNumberManagement) {
  1679. addRoles.houseNumberManagement =
  1680. res.data.data.houseNumberManagement.split(",");
  1681. addRolesData4.value.setCheckedKeys(
  1682. res.data.data.houseNumberManagement.split(",")
  1683. );
  1684. }
  1685. // 房价管理 5
  1686. addRoles.housePriceManagement =
  1687. res.data.data.housePriceManagement.split(",");
  1688. addRolesData5.value.setCheckedKeys(
  1689. res.data.data.housePriceManagement.split(",")
  1690. );
  1691. // 订单管理 6
  1692. addRoles.houseOrderManagement =
  1693. res.data.data.houseOrderManagement.split(",");
  1694. addRolesData6.value.setCheckedKeys(
  1695. res.data.data.houseOrderManagement.split(",")
  1696. );
  1697. // 值班管理 7
  1698. addRoles.dutyManagement = res.data.data.dutyManagement.split(",");
  1699. addRolesData7.value.setCheckedKeys(res.data.data.dutyManagement.split(","));
  1700. // 流程管理 8
  1701. addRoles.processManagement = res.data.data.processManagement.split(",");
  1702. addRolesData8.value.setCheckedKeys(
  1703. res.data.data.processManagement.split(",")
  1704. );
  1705. // 统计报表 9
  1706. addRoles.reportManagement = res.data.data.reportManagement.split(",");
  1707. addRolesData9.value.setCheckedKeys(
  1708. res.data.data.reportManagement.split(",")
  1709. );
  1710. // 门锁管理 10
  1711. addRoles.doorLockManagement = res.data.data.doorLockManagement.split(",");
  1712. addRolesData10.value.setCheckedKeys(
  1713. res.data.data.doorLockManagement.split(",")
  1714. );
  1715. // 水电表管理 11
  1716. addRoles.hydropowerManagement =
  1717. res.data.data.hydropowerManagement.split(",");
  1718. addRolesData11.value.setCheckedKeys(
  1719. res.data.data.hydropowerManagement.split(",")
  1720. );
  1721. // 角色管理
  1722. addRoles.roleManagement = res.data.data.roleManagement.split(",");
  1723. addRolesData12.value.setCheckedKeys(
  1724. res.data.data.roleManagement.split(",")
  1725. );
  1726. // 账号管理 13
  1727. addRoles.accountManagement = res.data.data.accountManagement.split(",");
  1728. addRolesData13.value.setCheckedKeys(
  1729. res.data.data.accountManagement.split(",")
  1730. );
  1731. // 员工管理 14
  1732. if (res.data.data.staffManagement) {
  1733. addRoles.staffManagement = res.data.data.staffManagement.split(",");
  1734. addRolesData14.value.setCheckedKeys(
  1735. res.data.data.staffManagement.split(",")
  1736. );
  1737. }
  1738. // 用户管理 15
  1739. addRoles.userManagement = res.data.data.userManagement.split(",");
  1740. addRolesData15.value.setCheckedKeys(
  1741. res.data.data.userManagement.split(",")
  1742. );
  1743. // 系统设置
  1744. addRoles.systemManagement = res.data.data.systemManagement.split(",");
  1745. addRolesData16.value.setCheckedKeys(
  1746. res.data.data.systemManagement.split(",")
  1747. );
  1748. } else {
  1749. ElMessage({
  1750. type: "error",
  1751. showClose: true,
  1752. message: res.data.message,
  1753. center: true,
  1754. });
  1755. }
  1756. };
  1757. const cancelEdit = () => {
  1758. addRolesVisible.value = false;
  1759. };
  1760. // 勾选角色权限
  1761. const editMemberCheckChange1 = (data, nodes, row) => {
  1762. console.log(data, nodes, row, "勾选角色");
  1763. };
  1764. const editMemberCheckChange = (data, nodes, name) => {
  1765. console.log(data, nodes, name, "勾选角色");
  1766. // editMemberTree.value.setCheckedKeys([]);
  1767. if (name == "房态管理") {
  1768. addRoles.houseStatusManagement = nodes.checkedKeys;
  1769. } else if (name == "楼栋单元管理") {
  1770. addRoles.buildingManagement = nodes.checkedKeys;
  1771. } else if (name == "房型管理") {
  1772. addRoles.houseTypeManagement = nodes.checkedKeys;
  1773. } else if (name == "房间列表") {
  1774. addRoles.houseNumberManagement = nodes.checkedKeys;
  1775. } else if (name == "房价管理") {
  1776. addRoles.housePriceManagement = nodes.checkedKeys;
  1777. } else if (name == "订单管理") {
  1778. addRoles.houseOrderManagement = nodes.checkedKeys;
  1779. } else if (name == "值班管理") {
  1780. addRoles.dutyManagement = nodes.checkedKeys;
  1781. } else if (name == "流程管理") {
  1782. addRoles.processManagement = nodes.checkedKeys;
  1783. } else if (name == "统计报表") {
  1784. addRoles.reportManagement = nodes.checkedKeys;
  1785. } else if (name == "门锁管理") {
  1786. addRoles.doorLockManagement = nodes.checkedKeys;
  1787. } else if (name == "水电表管理") {
  1788. addRoles.hydropowerManagement = nodes.checkedKeys;
  1789. } else if (name == "角色管理") {
  1790. addRoles.roleManagement = nodes.checkedKeys;
  1791. } else if (name == "账号管理") {
  1792. addRoles.accountManagement = nodes.checkedKeys;
  1793. } else if (name == "员工管理") {
  1794. addRoles.staffManagement = nodes.checkedKeys;
  1795. } else if (name == "用户管理") {
  1796. addRoles.userManagement = nodes.checkedKeys;
  1797. } else if (name == "系统设置") {
  1798. addRoles.systemManagement = nodes.checkedKeys;
  1799. }
  1800. };
  1801. // 确定
  1802. const confirmEdit = async () => {
  1803. const loading = ElLoading.service({
  1804. lock: true,
  1805. text: "Loading",
  1806. background: "rgba(0, 0, 0, 0.7)",
  1807. });
  1808. if (addRoles.id) {
  1809. let data = {
  1810. id: addRoles.id,
  1811. name: addRoles.name,
  1812. adminMenuId: addRoles.adminMenuId,
  1813. permissionSettingId: sessionStorage.getItem("permissionSettingId"),
  1814. houseStatusManagement: addRoles.houseStatusManagement.join(","),
  1815. buildingManagement: addRoles.buildingManagement.join(","),
  1816. houseTypeManagement: addRoles.houseTypeManagement.join(","),
  1817. houseNumberManagement: addRoles.houseNumberManagement.join(","),
  1818. housePriceManagement: addRoles.housePriceManagement.join(","),
  1819. houseOrderManagement: addRoles.houseOrderManagement.join(","),
  1820. dutyManagement: addRoles.dutyManagement.join(","),
  1821. processManagement: addRoles.processManagement.join(","),
  1822. reportManagement: addRoles.reportManagement.join(","),
  1823. doorLockManagement: addRoles.doorLockManagement.join(","),
  1824. hydropowerManagement: addRoles.hydropowerManagement.join(","),
  1825. roleManagement: addRoles.roleManagement.join(","),
  1826. accountManagement: addRoles.accountManagement.join(","),
  1827. staffManagement: addRoles.staffManagement.join(","),
  1828. userManagement: addRoles.userManagement.join(","),
  1829. systemManagement: addRoles.systemManagement.join(","),
  1830. };
  1831. console.log(data, "编辑参数");
  1832. if (!addRoles.name) {
  1833. ElMessage({
  1834. type: "warning",
  1835. showClose: true,
  1836. message: "角色名称不能为空",
  1837. center: true,
  1838. });
  1839. return false;
  1840. }
  1841. let res = await axios({
  1842. method: "post",
  1843. url: api.value + "/admin-menu/updateMenuPermissionSetting",
  1844. headers: {
  1845. token: sessionStorage.getItem("token"),
  1846. user_head: sessionStorage.getItem("user_head"),
  1847. },
  1848. data: data,
  1849. });
  1850. if (res.data.code == 200) {
  1851. if (addRoles.id == sessionStorage.getItem("permissionSettingId")) {
  1852. store.commit("ROLELIST", addRoles.id);
  1853. setTimeout(() => {
  1854. window.location.reload();
  1855. }, 1000);
  1856. }
  1857. addRolesVisible.value = false;
  1858. loading.close();
  1859. ElMessage({
  1860. type: "success",
  1861. showClose: true,
  1862. message: res.data.message,
  1863. center: true,
  1864. });
  1865. } else {
  1866. ElMessage({
  1867. type: "error",
  1868. showClose: true,
  1869. message: res.data.message,
  1870. center: true,
  1871. });
  1872. }
  1873. } else {
  1874. let data = {
  1875. name: addRoles.name,
  1876. adminMenuId: sessionStorage.getItem("permissionSettingId"),
  1877. // permissionSettingId: sessionStorage.getItem("permissionSettingId"),
  1878. houseStatusManagement: addRoles.houseStatusManagement.join(","),
  1879. buildingManagement: addRoles.buildingManagement.join(","),
  1880. houseTypeManagement: addRoles.houseTypeManagement.join(","),
  1881. houseNumberManagement: addRoles.houseNumberManagement.join(","),
  1882. housePriceManagement: addRoles.housePriceManagement.join(","),
  1883. houseOrderManagement: addRoles.houseOrderManagement.join(","),
  1884. dutyManagement: addRoles.dutyManagement.join(","),
  1885. processManagement: addRoles.processManagement.join(","),
  1886. reportManagement: addRoles.reportManagement.join(","),
  1887. doorLockManagement: addRoles.doorLockManagement.join(","),
  1888. hydropowerManagement: addRoles.hydropowerManagement.join(","),
  1889. roleManagement: addRoles.roleManagement.join(","),
  1890. accountManagement: addRoles.accountManagement.join(","),
  1891. staffManagement: addRoles.staffManagement.join(","),
  1892. userManagement: addRoles.userManagement.join(","),
  1893. systemManagement: addRoles.systemManagement.join(","),
  1894. };
  1895. if (!addRoles.name) {
  1896. ElMessage({
  1897. type: "warning",
  1898. showClose: true,
  1899. message: "角色名称不能为空",
  1900. center: true,
  1901. });
  1902. return false;
  1903. }
  1904. if (parentId.value) {
  1905. data.parentId = parentId.value;
  1906. let res = await axios({
  1907. method: "post",
  1908. url: api.value + "/admin-menu/saveSecondary",
  1909. headers: {
  1910. token: sessionStorage.getItem("token"),
  1911. user_head: sessionStorage.getItem("user_head"),
  1912. },
  1913. data: data,
  1914. });
  1915. console.log(res, "添加T1角色");
  1916. if (res.data.code == 200) {
  1917. getList()
  1918. // if (addRoles.id == sessionStorage.getItem("permissionSettingId")) {
  1919. // store.commit("ROLELIST", addRoles.id);
  1920. // setTimeout(() => {
  1921. // window.location.reload();
  1922. // }, 1000);
  1923. // }
  1924. loading.close();
  1925. addRolesVisible.value = false;
  1926. ElMessage({
  1927. type: "success",
  1928. showClose: true,
  1929. message: res.data.message,
  1930. center: true,
  1931. });
  1932. } else {
  1933. ElMessage({
  1934. type: "error",
  1935. showClose: true,
  1936. message: res.data.message,
  1937. center: true,
  1938. });
  1939. }
  1940. } else {
  1941. let res = await axios({
  1942. method: "post",
  1943. url: api.value + "/admin-menu/saveParent",
  1944. headers: {
  1945. token: sessionStorage.getItem("token"),
  1946. user_head: sessionStorage.getItem("user_head"),
  1947. },
  1948. data: data,
  1949. });
  1950. console.log(res, "添加T0角色");
  1951. if (res.data.code == 200) {
  1952. getList();
  1953. loading.close();
  1954. addRolesVisible.value = false;
  1955. ElMessage({
  1956. type: "success",
  1957. showClose: true,
  1958. message: res.data.message,
  1959. center: true,
  1960. });
  1961. } else {
  1962. ElMessage({
  1963. type: "error",
  1964. showClose: true,
  1965. message: res.data.message,
  1966. center: true,
  1967. });
  1968. }
  1969. }
  1970. }
  1971. };
  1972. //删除按钮
  1973. const delRoles = async (row) => {
  1974. let data = {
  1975. adminMenuId: row.id,
  1976. permissionSettingId: sessionStorage.getItem("permissionSettingId"),
  1977. };
  1978. let res = await axios({
  1979. method: "get",
  1980. url: api.value + "/admin-menu/delete",
  1981. headers: {
  1982. token: sessionStorage.getItem("token"),
  1983. user_head: sessionStorage.getItem("user_head"),
  1984. },
  1985. params: data,
  1986. });
  1987. if (res.data.code == 200) {
  1988. if (tableData.list.length == 1 && currentPage.value != 1) {
  1989. currentPage.value = currentPage.value - 1;
  1990. }
  1991. getList();
  1992. ElMessage({
  1993. type: "success",
  1994. showClose: true,
  1995. message: res.data.message,
  1996. center: true,
  1997. });
  1998. } else {
  1999. ElMessage({
  2000. type: "error",
  2001. showClose: true,
  2002. message: res.data.message,
  2003. center: true,
  2004. });
  2005. }
  2006. // console.log(res);
  2007. };
  2008. // 多选框功能
  2009. const handleSelectionChange = (val) => {
  2010. console.log(val);
  2011. selectData.list = val;
  2012. };
  2013. //导出功能
  2014. // const importExcel = async () => {
  2015. // if (searchInput.createTime == null) {
  2016. // searchInput.createTime = "";
  2017. // }
  2018. // let data = new FormData();
  2019. // data.set("car_number", searchInput.carnumber);
  2020. // data.set("create_time", searchInput.createTime);
  2021. // let res = await axios({
  2022. // method: "post",
  2023. // url: api.value + "/carBook/cinfotoExcel.action",
  2024. // headers: {
  2025. // token: sessionStorage.getItem("token"),
  2026. // },
  2027. // data: data,
  2028. // });
  2029. // // console.log(res, "导出账号");
  2030. // if (res.data.code == 200) {
  2031. // // const elt = document.createElement("a");
  2032. // // elt.setAttribute(
  2033. // // "href",
  2034. // // "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl
  2035. // // );
  2036. // // elt.setAttribute("download", "file.png");
  2037. // // elt.style.display = "none";
  2038. // // document.body.appendChild(elt);
  2039. // // elt.click();
  2040. // var downloadPath = "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl;
  2041. // console.log("获得地址数据:", downloadPath);
  2042. // var downloadLink = document.createElement("a");
  2043. // downloadLink.style.display = "none"; // 使其隐藏
  2044. // downloadLink.href = downloadPath;
  2045. // downloadLink.download = "";
  2046. // downloadLink.click();
  2047. // document.body.appendChild(downloadLink);
  2048. // document.body.removeChild(downloadLink);
  2049. // ElMessage({
  2050. // type: "success",
  2051. // showClose: true,
  2052. // message: res.data.message,
  2053. // center: true,
  2054. // });
  2055. // } else {
  2056. // ElMessage({
  2057. // type: "error",
  2058. // showClose: true,
  2059. // message: res.data.message,
  2060. // center: true,
  2061. // });
  2062. // }
  2063. // };
  2064. // 表格斑马纹颜色修改
  2065. const tableRowClassName = ({ row, rowIndex }) => {
  2066. if (rowIndex % 2 === 0) {
  2067. return "even";
  2068. } else if (rowIndex % 2 !== 0) {
  2069. return "odd";
  2070. }
  2071. return "";
  2072. };
  2073. // 分页
  2074. const handleCurrentChange = (value) => {
  2075. // console.log(value);
  2076. currentPage.value = value;
  2077. getList();
  2078. };
  2079. onBeforeMount(async () => {
  2080. api.value = store.state.user.api;
  2081. getList();
  2082. const btnflag = JSON.parse(sessionStorage.getItem("btnflag"));
  2083. flagBtn.value = btnflag.userRoles;
  2084. console.log(flagBtn.value, "按钮权限");
  2085. });
  2086. onUnmounted(() => {
  2087. // document.removeEventListener("keyup", Enters);
  2088. });
  2089. </script>
  2090. <style scoped lang="scss">
  2091. .content-box {
  2092. width: calc(100% - 40px);
  2093. height: calc(100% - 105px);
  2094. margin: 20px auto;
  2095. background-color: #fff;
  2096. color: #fff;
  2097. display: flex;
  2098. flex-direction: column;
  2099. box-shadow: 0px 3px 10px rgba(0, 97, 255, 0.2);
  2100. .left {
  2101. // width: calc(100wh - 40px);
  2102. display: flex;
  2103. align-items: center;
  2104. height: 60px;
  2105. margin: 0 30px;
  2106. border-bottom: 1px solid #ccc;
  2107. color: rgb(0, 0, 0);
  2108. font-size: 18px;
  2109. font-weight: 600;
  2110. span {
  2111. margin-right: 20px;
  2112. cursor: pointer;
  2113. }
  2114. .is_active {
  2115. color: rgba(111, 182, 184, 1);
  2116. }
  2117. }
  2118. .scroll {
  2119. width: calc(100% - 60px);
  2120. height: calc(100% - 61px);
  2121. margin: 0 auto;
  2122. display: flex;
  2123. flex-direction: column;
  2124. }
  2125. .middle {
  2126. width: 100%;
  2127. color: #000;
  2128. // border-bottom: 1px solid rgb(231, 231, 231);
  2129. .filter {
  2130. display: flex;
  2131. flex-wrap: wrap;
  2132. align-items: center;
  2133. // margin: 10px 0 0 0;
  2134. .search {
  2135. color: #fff;
  2136. }
  2137. .condition {
  2138. display: flex;
  2139. align-items: center;
  2140. margin: 10px 30px 10px 0;
  2141. :deep(.el-input .el-input__inner) {
  2142. font-size: 14px;
  2143. }
  2144. span {
  2145. margin: 0 10px 0 0;
  2146. }
  2147. }
  2148. }
  2149. .gongneng {
  2150. margin: 10px 0 20px 0;
  2151. span {
  2152. color: #fff;
  2153. }
  2154. .el-button {
  2155. margin-right: 10px;
  2156. }
  2157. }
  2158. :deep(.cont) {
  2159. width: 60%;
  2160. margin: 20px auto;
  2161. }
  2162. :deep(.download) {
  2163. display: flex;
  2164. align-items: center;
  2165. margin: 10px;
  2166. }
  2167. :deep(.download span) {
  2168. font-size: 16px;
  2169. margin-left: 20px;
  2170. }
  2171. :deep(.cont .el-button) {
  2172. margin-left: 60px;
  2173. margin-bottom: 30px;
  2174. }
  2175. :deep(.cont .accomplish) {
  2176. width: 100%;
  2177. display: flex;
  2178. justify-content: center;
  2179. }
  2180. :deep(.cont .accomplish .el-button) {
  2181. width: 50%;
  2182. margin: 0;
  2183. }
  2184. }
  2185. .footer {
  2186. width: 100%;
  2187. flex: 1;
  2188. overflow: auto;
  2189. .el-table--fit {
  2190. height: calc(100% - 60px);
  2191. :deep(.el-table__header-wrapper) {
  2192. background-color: #000;
  2193. font-size: 16px;
  2194. tr {
  2195. color: #000;
  2196. }
  2197. }
  2198. :deep(.el-table__row) {
  2199. height: 50px;
  2200. font-size: 16px;
  2201. color: #000;
  2202. }
  2203. :deep(.el-table__row):nth-child(2n) {
  2204. .el-table-fixed-column--right {
  2205. background-color: rgba(240, 243, 247, 1);
  2206. }
  2207. }
  2208. :deep(.el-table__row td) {
  2209. padding: 0;
  2210. border: 0;
  2211. }
  2212. .el-button--primary {
  2213. margin-left: 5px;
  2214. }
  2215. :deep(.el-table__body .even) {
  2216. background-color: #fff;
  2217. }
  2218. :deep(.el-table__body .odd) {
  2219. background-color: rgba(240, 243, 247, 1);
  2220. }
  2221. :deep(.edit) {
  2222. display: flex;
  2223. align-items: center;
  2224. justify-content: center;
  2225. color: rgba(111, 182, 184, 1);
  2226. }
  2227. :deep(.look) {
  2228. padding: 0 10px;
  2229. cursor: pointer;
  2230. color: rgba(30, 125, 251, 1);
  2231. }
  2232. .del {
  2233. padding: 0 10px;
  2234. color: rgba(212, 48, 48, 1);
  2235. cursor: pointer;
  2236. }
  2237. // :deep(.look):hover {
  2238. // color: red;
  2239. // }
  2240. // :deep(.del):hover {
  2241. // color: red;
  2242. // }
  2243. }
  2244. }
  2245. // 添加角色
  2246. :deep(.addRoles) {
  2247. // height: 420px;
  2248. border-radius: 11px;
  2249. .el-dialog__header {
  2250. border-radius: 11px 11px 0 0;
  2251. background: rgba(237, 241, 245, 1);
  2252. font-weight: 600;
  2253. margin: 0;
  2254. .el-dialog__headerbtn {
  2255. outline: none;
  2256. }
  2257. }
  2258. .el-dialog__body {
  2259. padding: 20px 30px 10px 30px;
  2260. .rolesName {
  2261. margin: 15px 0;
  2262. color: #000;
  2263. height: 600px;
  2264. overflow: auto;
  2265. .rolePermission {
  2266. margin: 10px 0;
  2267. }
  2268. }
  2269. .el-table--fit {
  2270. height: 600px;
  2271. .el-table__header-wrapper {
  2272. background-color: #000;
  2273. font-size: 16px;
  2274. tr {
  2275. color: #000;
  2276. th {
  2277. border-left: 1px solid #dcdfe6 !important;
  2278. &:last-child {
  2279. border-right: 1px solid #dcdfe6 !important;
  2280. }
  2281. .cell {
  2282. text-align: center;
  2283. }
  2284. }
  2285. }
  2286. }
  2287. .el-table__row {
  2288. height: 50px;
  2289. font-size: 16px;
  2290. color: #000;
  2291. .el-tree-node__children {
  2292. display: flex;
  2293. flex-wrap: wrap;
  2294. .el-tree-node {
  2295. width: 140px;
  2296. .el-tree-node__content {
  2297. padding-left: 0 !important;
  2298. }
  2299. }
  2300. // border: 1px solid red;
  2301. }
  2302. }
  2303. .el-table__row td {
  2304. padding: 0;
  2305. // border: 0;
  2306. }
  2307. td {
  2308. border-left: 1px solid #dcdfe6;
  2309. .checkBoxSel {
  2310. padding-left: 20px;
  2311. .el-checkbox {
  2312. .el-checkbox__label {
  2313. color: #000;
  2314. }
  2315. }
  2316. }
  2317. &:last-child {
  2318. border-right: 1px solid #dcdfe6;
  2319. }
  2320. }
  2321. .el-table__row:hover {
  2322. td {
  2323. background-color: #ffffff !important;
  2324. }
  2325. }
  2326. .el-button--primary {
  2327. margin-left: 5px;
  2328. }
  2329. // .el-table__body .even {
  2330. // background-color: #fff;
  2331. // }
  2332. // .el-table__body .odd {
  2333. // background-color: rgba(240, 243, 247, 1);
  2334. // }
  2335. }
  2336. table {
  2337. width: 840px;
  2338. // height: 600px;
  2339. tr {
  2340. td {
  2341. border-top: 1px solid #7c7c7c;
  2342. border-left: 1px solid #7c7c7c;
  2343. }
  2344. td:nth-child(1) {
  2345. width: 120px;
  2346. }
  2347. td:last-child {
  2348. border-right: 1px solid #7c7c7c;
  2349. padding: 10px 0;
  2350. .el-tree {
  2351. .el-tree-node__children {
  2352. display: flex;
  2353. flex-wrap: wrap;
  2354. .el-tree-node {
  2355. width: 140px;
  2356. .el-tree-node__content {
  2357. padding-left: 0 !important;
  2358. }
  2359. }
  2360. // border: 1px solid red;
  2361. }
  2362. }
  2363. }
  2364. }
  2365. tr:nth-child(1) {
  2366. td {
  2367. height: 40px;
  2368. }
  2369. }
  2370. tr:last-child {
  2371. td {
  2372. border-bottom: 1px solid #7c7c7c;
  2373. }
  2374. }
  2375. }
  2376. .options {
  2377. margin: 10px 20px 10px 0;
  2378. width: 100%;
  2379. .btn {
  2380. display: flex;
  2381. flex-direction: row-reverse;
  2382. }
  2383. .queding {
  2384. color: #fff;
  2385. margin-left: 15px;
  2386. }
  2387. }
  2388. }
  2389. }
  2390. // 编辑按钮
  2391. :deep(.editDialog) {
  2392. // height: 420px;
  2393. border-radius: 11px;
  2394. .el-dialog__header {
  2395. border-radius: 11px 11px 0 0;
  2396. background: rgba(237, 241, 245, 1);
  2397. font-weight: 600;
  2398. margin: 0;
  2399. .el-dialog__headerbtn {
  2400. outline: none;
  2401. }
  2402. }
  2403. .el-dialog__body {
  2404. padding: 30px 20px 10px 20px;
  2405. .el-form-item__content {
  2406. width: 200px;
  2407. .el-tree-node__content {
  2408. // border: 1px solid red;
  2409. .el-checkbox {
  2410. display: none;
  2411. }
  2412. }
  2413. .el-tree-node__children {
  2414. .el-checkbox {
  2415. display: block;
  2416. }
  2417. }
  2418. }
  2419. .options {
  2420. margin: 10px 20px 20px 0;
  2421. width: 100%;
  2422. .el-form-item__content {
  2423. display: flex;
  2424. flex-direction: row-reverse;
  2425. }
  2426. .queding {
  2427. color: #fff;
  2428. margin-left: 15px;
  2429. }
  2430. }
  2431. }
  2432. }
  2433. .pageSize {
  2434. display: flex;
  2435. align-items: center;
  2436. justify-content: space-between;
  2437. height: 60px;
  2438. span {
  2439. color: #000;
  2440. }
  2441. .el-pagination {
  2442. // width: 1600px;
  2443. :deep(.el-pagination__total) {
  2444. color: #000;
  2445. }
  2446. :deep(.el-pagination__goto) {
  2447. color: #000;
  2448. }
  2449. :deep(.el-pagination__classifier) {
  2450. color: #000;
  2451. }
  2452. :deep(.el-input__wrapper) {
  2453. border: 1px solid rgba(0, 0, 0, 1);
  2454. border-radius: 5px;
  2455. box-shadow: none;
  2456. }
  2457. :deep(.el-pager li) {
  2458. margin: 0 5px;
  2459. border: 1px solid rgba(0, 0, 0, 1);
  2460. border-radius: 5px;
  2461. background-color: transparent;
  2462. }
  2463. :deep(.el-pager li.is-active) {
  2464. // background-color: rgba(0, 97, 255, 0.8);
  2465. border: 1px solid rgba(0, 97, 255, 1);
  2466. color: rgba(0, 97, 255, 1);
  2467. }
  2468. :deep(.btn-prev) {
  2469. margin-right: 5px;
  2470. border: 1px solid rgba(0, 0, 0, 1);
  2471. border-radius: 5px;
  2472. background-color: transparent;
  2473. }
  2474. :deep(.btn-next) {
  2475. margin-left: 5px;
  2476. border: 1px solid rgba(0, 0, 0, 1);
  2477. border-radius: 5px;
  2478. background-color: transparent;
  2479. }
  2480. }
  2481. }
  2482. }
  2483. .el-input {
  2484. width: 192px;
  2485. }
  2486. </style>