tableList.vue 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151
  1. <template>
  2. <div id="tableList">
  3. <div class="headerNavTool" v-if="navText.headShow !== false">
  4. <div class="leftIndexText">
  5. {{ navText.title }} <strong>{{ navText.index }}</strong>
  6. {{ navText.ch }}
  7. </div>
  8. <div class="rightBtnBox">
  9. <slot name="customize"></slot>
  10. <el-button
  11. size="medium"
  12. type="primary"
  13. @click="addClick"
  14. v-if="!navText.addHide"
  15. >添加</el-button
  16. >
  17. <el-button
  18. v-if="navText.backFatherBtn.status"
  19. size="medium"
  20. type="warning"
  21. @click="backFather"
  22. >{{ navText.backFatherBtn.title }}</el-button
  23. >
  24. <el-popover
  25. popper-class="slotPopper"
  26. placement="bottom-end"
  27. trigger="click"
  28. >
  29. <div class="popoverDis">
  30. <div class="checkboxHeader">
  31. <el-checkbox
  32. :indeterminate="isIndeterminate"
  33. v-model="checkAll"
  34. @change="handleCheckAllChange"
  35. >列展示</el-checkbox
  36. >
  37. <div class="initbtns" @click="initVue">重置</div>
  38. </div>
  39. <div
  40. style="height: 1px; width: 100%; background-color: #eaeefb"
  41. ></div>
  42. <el-checkbox-group
  43. class="checkboxGroup"
  44. v-model="checkedCities"
  45. @change="handleCheckedCitiesChange"
  46. >
  47. <div
  48. class="checkboxchild"
  49. v-for="(item, index) in cities"
  50. :key="index"
  51. >
  52. <el-checkbox
  53. :label="item"
  54. @change="checkboxChange(item, $event)"
  55. >{{ item }}</el-checkbox
  56. >
  57. <div class="icon-right">
  58. <i class="el-icon-upload2" @click="upMove(item, index)"></i>
  59. <i
  60. class="el-icon-download"
  61. @click="downMove(item, index)"
  62. ></i>
  63. </div>
  64. </div>
  65. </el-checkbox-group>
  66. </div>
  67. <el-button
  68. v-if="navText.custom !== false"
  69. style="margin-left: 10px"
  70. size="medium"
  71. slot="reference"
  72. >自定义列</el-button
  73. >
  74. </el-popover>
  75. </div>
  76. </div>
  77. <el-table
  78. :data="tableData"
  79. :span-method="objectSpanMethod"
  80. stripe
  81. style="width: 100%"
  82. @select-all="selectAll"
  83. @select="select"
  84. :row-key="rowKey"
  85. :load="load"
  86. :cell-style="timeStyle"
  87. lazy
  88. :border="true"
  89. ref="pagerset"
  90. v-loading="loading"
  91. :header-cell-style="{
  92. 'background-color': '#eee',
  93. color: '#333',
  94. fontSize: '14px',
  95. }"
  96. :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
  97. >
  98. <el-table-column
  99. v-if="navText.choiceRadio"
  100. align="center"
  101. type="selection"
  102. :fixed="navText.radioFixed"
  103. width="55"
  104. >
  105. <template slot-scope="scope">
  106. <el-radio
  107. style="margin-left: 10px"
  108. v-model="tableRadio"
  109. :label="scope.row[navText.radioKey]"
  110. @change="radioChange"
  111. >{{ "" }}</el-radio
  112. >
  113. </template>
  114. </el-table-column>
  115. <el-table-column
  116. v-if="navText.choice"
  117. :reserve-selection="navText.openCheckMore"
  118. align="center"
  119. type="selection"
  120. width="55"
  121. header-align="center"
  122. fixed="left"
  123. >
  124. </el-table-column>
  125. <!-- v-if="navText.num" ↓ -->
  126. <el-table-column
  127. v-if="navText.dontNum ? false : true"
  128. type="index"
  129. label="序号"
  130. width="70"
  131. align="center"
  132. header-align="center"
  133. >
  134. </el-table-column>
  135. <af-table-column
  136. v-for="(item, index) in compTableSet(tableSet)"
  137. :width="item.width"
  138. :label="item.label"
  139. :align="item.dontCenter ? 'left' : 'center'"
  140. :sortable="item.prop === 'sort' || item.sort"
  141. :sort-method="sortMethods"
  142. :show-overflow-tooltip="item.showTooltip ? false : true"
  143. header-align="center"
  144. :prop="item.prop"
  145. sort-by="sort"
  146. :key="index"
  147. >
  148. <template slot-scope="scope">
  149. <div class="imgboxsq" v-if="item.scope === 'img'">
  150. <img
  151. style="height: 60px; width: 60px"
  152. v-if="!scope.row[item.prop]"
  153. src="@/assets/404_images/wuyuxaog.png"
  154. alt=""
  155. />
  156. <el-image
  157. v-else
  158. class="el_images"
  159. lazy
  160. :src="$methodsTools.splitImgHost(scope.row[item.prop])"
  161. style="height: 100%; width: 100%"
  162. :preview-src-list="[
  163. $methodsTools.splitImgHost(scope.row[item.prop]),
  164. ]"
  165. alt="加载失败"
  166. >
  167. </el-image>
  168. </div>
  169. <div v-else-if="item.scope === 'sortType'">
  170. <el-input-number
  171. v-model="scope.row[item.prop]"
  172. :min="0"
  173. style="width: 80px"
  174. :controls="false"
  175. @change="blurBackData(scope.row)"
  176. ></el-input-number>
  177. </div>
  178. <template
  179. v-else-if="
  180. item.scope === 'copyTime' && scope.row[item.prop] != null
  181. "
  182. >
  183. <div v-for="(item, index) in scope.row['copyTime']" :key="index">
  184. <span>{{ item }}</span>
  185. </div>
  186. </template>
  187. <span
  188. v-else-if="item.scope === 'status' && scope.row[item.prop] != null"
  189. >{{
  190. Number(scope.row[item.prop]) === 1
  191. ? "启用"
  192. : Number(scope.row[item.prop]) === 0
  193. ? "关闭"
  194. : Number(scope.row[item.prop]) === -1
  195. ? "已删除"
  196. : "未知"
  197. }}</span
  198. >
  199. <span v-else-if="item.scope === 'hasTime'">{{
  200. Number(scope.row[item.prop]) === 1
  201. ? "有效"
  202. : Number(scope.row[item.prop]) === 0
  203. ? "无效"
  204. : "未知"
  205. }}</span>
  206. <span v-else-if="item.scope === 'reStatus'">{{
  207. Number(scope.row[item.prop]) === 1
  208. ? "定时发布"
  209. : Number(scope.row[item.prop]) === 0
  210. ? "手动发布"
  211. : "未知"
  212. }}</span>
  213. <span v-else-if="item.scope === 'fabStatus'">{{
  214. Number(scope.row[item.prop]) === 1
  215. ? "发布"
  216. : Number(scope.row[item.prop]) === 0
  217. ? "未发布"
  218. : "未知"
  219. }}</span>
  220. <span v-else-if="item.scope === 'sectionTypes'">{{
  221. Number(scope.row[item.prop]) === 2
  222. ? "录播"
  223. : Number(scope.row[item.prop]) === 1
  224. ? "直播"
  225. : Number(scope.row[item.prop]) === 3
  226. ? "回放"
  227. : "未知"
  228. }}</span>
  229. <span
  230. v-else-if="
  231. item.scope === 'treeWatch' &&
  232. (scope.row['goodsType'] === 1 ||
  233. scope.row['goodsType'] === 2 ||
  234. scope.row['goodsType'] === 6)
  235. "
  236. style="color: blue"
  237. @click="
  238. scope.row['goodsType'] === 1 || scope.row['goodsType'] === 6
  239. ? diavios(scope.row['goodsId'])
  240. : diaviosTK(scope.row['goodsId'])
  241. "
  242. >结构树视图</span
  243. >
  244. <span v-else-if="item.scope === 'leftCh'">
  245. {{ item.ch }}{{ scope.row[item.prop] }}
  246. </span>
  247. <span
  248. v-else-if="item.scope === 'goodsIds'"
  249. class="editInfoSty"
  250. @click="editInfo(scope.row, 3)"
  251. >
  252. {{
  253. !scope.row[item.prop]
  254. ? 0
  255. : scope.row[item.prop].split(",").map(Number).length
  256. }}
  257. </span>
  258. <span
  259. v-else-if="item.scope === 'aboutSpec'"
  260. style="color: blue; cursor: pointer"
  261. @click="openSpec(scope.row['goodsId'])"
  262. >
  263. {{ scope.row[item.prop] ? "已关联" : "未关联" }}
  264. </span>
  265. <span v-else-if="item.scope === 'liveAndUrl'">{{
  266. scope.row[item.prop] == 2
  267. ? scope.row[item.prop2]
  268. : scope.row[item.prop1]
  269. }}</span>
  270. <ul v-else-if="item.scope === 'mapTypes'" class="ulAuto">
  271. <template v-for="(itm, inds) in scope.row[item.prop]">
  272. <li :key="inds" v-if="inds === 0">
  273. {{ itm.educationName + "-" + itm.projectName }}
  274. </li>
  275. </template>
  276. <el-popover :key="Math.random()" placement="right" trigger="click">
  277. <ul>
  278. <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
  279. {{ inds + 1 }}、
  280. {{ itm.educationName + "-" + itm.projectName }}
  281. </li>
  282. </ul>
  283. <el-button
  284. slot="reference"
  285. style="margin-left: 6px"
  286. type="text"
  287. v-if="scope.row[item.prop].length > 1"
  288. size="mini"
  289. >更多</el-button
  290. >
  291. </el-popover>
  292. </ul>
  293. <ul v-else-if="item.scope === 'mapTypesBUS'" class="ulAuto">
  294. <template v-for="(itm, inds) in scope.row[item.prop]">
  295. <li :key="inds" v-if="inds === 0">
  296. {{
  297. itm.educationName +
  298. "-" +
  299. itm.projectName +
  300. "-" +
  301. itm.businessName
  302. }}
  303. </li>
  304. </template>
  305. <el-popover :key="Math.random()" placement="right" trigger="click">
  306. <ul>
  307. <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
  308. {{ inds + 1 }}、
  309. {{
  310. itm.educationName +
  311. "-" +
  312. itm.projectName +
  313. "-" +
  314. itm.businessName
  315. }}
  316. </li>
  317. </ul>
  318. <el-button
  319. slot="reference"
  320. style="margin-left: 6px"
  321. type="text"
  322. v-if="scope.row[item.prop].length > 1"
  323. size="mini"
  324. >更多</el-button
  325. >
  326. </el-popover>
  327. </ul>
  328. <div v-else-if="item.scope === 'splits'" class="dis_sdt">
  329. <ul>
  330. <template v-for="(itm, inds) in scope.row[item.prop]">
  331. <li :key="inds" v-if="inds < 2">
  332. {{ itm }}
  333. </li>
  334. </template>
  335. </ul>
  336. <el-popover :key="Math.random()" placement="right" trigger="click">
  337. <ul>
  338. <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
  339. {{ inds + 1 }}、
  340. {{ itm }}
  341. </li>
  342. </ul>
  343. <el-button
  344. slot="reference"
  345. style="margin-left: 6px"
  346. type="text"
  347. v-if="scope.row[item.prop].length > 2"
  348. size="mini"
  349. >更多</el-button
  350. >
  351. </el-popover>
  352. </div>
  353. <div v-else-if="item.scope === 'goodsList'" class="ulAuto">
  354. <ul>
  355. <template v-for="(itm, inds) in scope.row[item.prop]">
  356. <li :key="inds" v-if="inds === 0">
  357. {{ itm.goodsName }}
  358. </li>
  359. </template>
  360. </ul>
  361. <el-popover :key="Math.random()" placement="right" trigger="click">
  362. <ul>
  363. <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
  364. {{ inds + 1 }}、
  365. {{ itm.goodsName }}
  366. </li>
  367. </ul>
  368. <el-button
  369. slot="reference"
  370. style="margin-left: 6px"
  371. type="text"
  372. v-if="scope.row[item.prop].length > 1"
  373. size="mini"
  374. >更多</el-button
  375. >
  376. </el-popover>
  377. </div>
  378. <div v-else-if="item.scope === 'aboutChapter'" class="ulAuto">
  379. <ul>
  380. <template v-for="(itm, inds) in scope.row[item.prop]">
  381. <li
  382. class="jumpStys"
  383. :key="inds"
  384. v-if="inds === 0"
  385. @click="jumpPages(itm, item.int)"
  386. >
  387. {{ itm[item.prop1] }}
  388. </li>
  389. </template>
  390. </ul>
  391. <el-popover :key="Math.random()" placement="right" trigger="click">
  392. <ul>
  393. <li
  394. v-for="(itm, inds) in scope.row[item.prop]"
  395. :key="inds"
  396. class="jumpStys"
  397. @click="jumpPages(itm, item.int)"
  398. >
  399. {{ inds + 1 }}、
  400. {{ itm[item.prop1] }}
  401. </li>
  402. </ul>
  403. <el-button
  404. slot="reference"
  405. style="margin-left: 6px"
  406. type="text"
  407. v-if="scope.row[item.prop].length > 1"
  408. size="mini"
  409. >更多</el-button
  410. >
  411. </el-popover>
  412. </div>
  413. <ul v-else-if="item.scope === 'mapTypesMores'" class="ulAuto">
  414. <template v-for="(itm, inds) in scope.row[item.prop]">
  415. <li :key="inds" v-if="inds === 0">
  416. {{
  417. itm.educationName +
  418. "-" +
  419. itm.projectName +
  420. "-" +
  421. itm.businessName +
  422. "-" +
  423. itm.subjectName
  424. }}
  425. </li>
  426. </template>
  427. <el-popover :key="Math.random()" placement="right" trigger="click">
  428. <ul style="overflow: auto; max-height: 500px">
  429. <li v-for="(itm, inds) in scope.row[item.prop]" :key="inds">
  430. {{ inds + 1 }}、
  431. {{
  432. itm.educationName +
  433. "-" +
  434. itm.projectName +
  435. "-" +
  436. itm.businessName +
  437. "-" +
  438. itm.subjectName
  439. }}
  440. </li>
  441. </ul>
  442. <el-button
  443. slot="reference"
  444. style="margin-left: 6px"
  445. type="text"
  446. v-if="scope.row[item.prop].length > 1"
  447. size="mini"
  448. >更多</el-button
  449. >
  450. </el-popover>
  451. </ul>
  452. <div v-else-if="item.scope === 'htmlInfo'">
  453. <bankMsg ref="bankMsg" :bankMsg="scope.row" />
  454. </div>
  455. <div v-else-if="item.scope === 'video'">
  456. <i
  457. v-if="scope.row[item.prop][item.prop1] !== null"
  458. class="el-icon-video-play cvideo"
  459. @click="
  460. openVideo(
  461. $methodsTools.splitImgHost(scope.row[item.prop][item.prop1])
  462. )
  463. "
  464. ></i>
  465. </div>
  466. <div
  467. v-else-if="item.scope === 'PDF'"
  468. style="display: flex; align-items: center"
  469. >
  470. <a
  471. v-if="scope.row[item.prop][item.prop1] !== null"
  472. :href="
  473. $methodsTools.splitImgHost(scope.row[item.prop][item.prop1])
  474. "
  475. target="_blank"
  476. style="
  477. display: block;
  478. width: 35px;
  479. height: 45px;
  480. margin-right: 10px;
  481. "
  482. >
  483. <img class="imgHover" src="@/assets/images/pdf@3x.png" alt="" />
  484. </a>
  485. <div>{{ scope.row[item.prop][item.prop2] }}</div>
  486. </div>
  487. <div
  488. v-else-if="item.scope === 'openDialog'"
  489. class="open_style"
  490. @click="openDialog(scope.row)"
  491. >
  492. {{ item.name ? item.name : scope.row[item.prop] }}
  493. </div>
  494. <span v-else-if="item.scope === 'Salary'">
  495. {{ scope.row[item.prop1] === 1 ? "月薪" : "年薪" }}
  496. {{
  497. scope.row[item.prop2] === scope.row[item.prop3]
  498. ? scope.row[item.prop2]
  499. : scope.row[item.prop2] + "~" + scope.row[item.prop3]
  500. }}
  501. </span>
  502. <template v-else-if="item.scope === 'courseAbout'">
  503. <div v-for="(item, index) in scope.row[item.prop]" :key="index">
  504. {{ item.courseName }} ({{ item.aliasName }})
  505. </div>
  506. </template>
  507. <span v-else-if="item.scope === 'cashRatio'">
  508. {{ scope.row[item.prop]
  509. }}{{ scope.row["cashType"] === 1 ? "%" : "" }}
  510. </span>
  511. <span v-else-if="item.scope === 'convert'">{{
  512. $methodsTools.secondToDate(scope.row[item.prop], false)
  513. }}</span>
  514. <div v-else-if="item.scope === 'studentServicePeriod'">
  515. <span v-if="scope.row[item.prop1] === 1"
  516. >{{ scope.row[item.prop2] }}年</span
  517. >
  518. <span v-if="scope.row[item.prop1] === 2"
  519. >{{ scope.row[item.prop2] }}月</span
  520. >
  521. <span v-if="scope.row[item.prop1] === 3"
  522. >{{ scope.row[item.prop2] }}日</span
  523. >
  524. <span v-if="scope.row[item.prop1] === 4">
  525. {{ $methodsTools.onlyForma(scope.row[item.prop3]) }}
  526. {{ scope.row[item.prop3] && scope.row[item.prop4] ? "至" : "" }}
  527. {{ $methodsTools.onlyForma(scope.row[item.prop4]) }}
  528. </span>
  529. </div>
  530. <span v-else-if="item.scope === 'address'"
  531. >{{
  532. scope.row[item.prop1] +
  533. scope.row[item.prop2] +
  534. scope.row[item.prop3]
  535. }}{{ scope.row[item.prop4] ? scope.row[item.prop4] : "" }}</span
  536. >
  537. <span v-else-if="item.scope === 'sex'">
  538. {{
  539. scope.row[item.prop] == 1
  540. ? "男"
  541. : scope.row[item.prop] == 2
  542. ? "女"
  543. : "未知"
  544. }}
  545. </span>
  546. <span v-else-if="item.scope === 'typeStatus'">{{
  547. scope.row[item.prop] === 0
  548. ? "报名指引"
  549. : scope.row[item.prop] === 1
  550. ? "打印准考证"
  551. : scope.row[item.prop] === 2
  552. ? "成绩查询指引"
  553. : "未知"
  554. }}</span>
  555. <span v-else-if="item.scope === 'typeId'">{{
  556. scope.row[item.prop] === 1
  557. ? "普通练习"
  558. : scope.row[item.prop] === 2
  559. ? "押题试卷"
  560. : scope.row[item.prop] === 3
  561. ? "真题试卷"
  562. : "未知"
  563. }}</span>
  564. <div v-else-if="item.scope === 'knowledge'" class="overSty">
  565. <el-button
  566. type="success"
  567. size="small"
  568. v-for="(items, ks) in scope.row[item.prop]"
  569. :key="ks"
  570. >
  571. {{ items.knowledgeName }}
  572. </el-button>
  573. </div>
  574. <span v-else-if="item.scope === 'numberAll'">{{
  575. scope.row[item.prop1] + scope.row[item.prop2]
  576. }}</span>
  577. <span v-else-if="item.scope === 'moreLists'">{{
  578. scope.row[item.prop1] + " ~ " + scope.row[item.prop2]
  579. }}</span>
  580. <span v-else-if="item.scope === 'TimeLists'"
  581. >{{ $methodsTools.onlyForma(scope.row[item.prop1], item.Diszing) }}
  582. {{ scope.row[item.prop1] ? "至" : "" }}
  583. {{
  584. $methodsTools.onlyForma(scope.row[item.prop2], item.Diszing)
  585. }}</span
  586. >
  587. <span v-else-if="item.scope === 'aTimeList'">{{
  588. scope.row[item.prop] === null
  589. ? "--"
  590. : $methodsTools.onlyForma(scope.row[item.prop], !item.isDiszing)
  591. }}</span>
  592. <div v-else-if="item.scope === 'inputs'">
  593. <el-input-number
  594. style="width: 50px"
  595. size="small"
  596. :controls="false"
  597. v-model="scope.row[item.prop]"
  598. controls-position="right"
  599. :min="0"
  600. ></el-input-number>
  601. </div>
  602. <span v-else-if="item.scope === 'topic'">{{
  603. scope.row[item.prop] === 1
  604. ? "单选题"
  605. : scope.row[item.prop] === 2
  606. ? "多选题"
  607. : scope.row[item.prop] === 3
  608. ? "判断题"
  609. : scope.row[item.prop] === 4
  610. ? "案例题"
  611. : scope.row[item.prop] === 5
  612. ? "简答题"
  613. : "未知"
  614. }}</span>
  615. <span v-else-if="item.scope === 'typeStatusName'">{{
  616. scope.row[item.prop] === 1
  617. ? "扫码支付"
  618. : scope.row[item.prop] === 2
  619. ? "刷卡支付"
  620. : scope.row[item.prop] === 3
  621. ? "现金支付"
  622. : scope.row[item.prop] === 4
  623. ? "转账"
  624. : "未知"
  625. }}</span>
  626. <ul style="margin: 0" v-else-if="item.scope === 'studyCount'">
  627. <li>总共:{{ scope.row[item.prop1] + scope.row[item.prop2] }}</li>
  628. <li>消耗:{{ scope.row[item.prop1] }}</li>
  629. <li>剩余:{{ scope.row[item.prop2] }}</li>
  630. </ul>
  631. <span
  632. v-else-if="item.scope === 'statusPeriod'"
  633. :style="scope.row[item.prop] === 2 ? 'color:red' : ''"
  634. >
  635. {{
  636. scope.row[item.prop] === -1
  637. ? "不可审核"
  638. : scope.row[item.prop] === 2
  639. ? "待审核"
  640. : scope.row[item.prop] === 0
  641. ? "未通过"
  642. : scope.row[item.prop] === 1
  643. ? "已通过"
  644. : scope.row[item.prop] === 3
  645. ? "审核中"
  646. : ""
  647. }}
  648. </span>
  649. <div
  650. v-else-if="item.scope === 'openBox'"
  651. class="open_style"
  652. @click="openBoxData(scope.row)"
  653. >
  654. {{ scope.row[item.prop] }}
  655. </div>
  656. <div v-else-if="item.scope === 'changeCLS'">
  657. <div
  658. v-if="!scope.row['interfacePushId'] && !scope.row['periodPlush']"
  659. >
  660. <div v-if="scope.row[item.prop] === 1" style="color: red">
  661. 有变更<span
  662. style="margin-left: 6px; color: blue; cursor: pointer"
  663. @click="isShowBoxsFun(scope.row)"
  664. >查看</span
  665. >
  666. </div>
  667. <span v-else> 正常 </span>
  668. </div>
  669. <template v-else>
  670. <div
  671. v-if="
  672. scope.row['interfacePushId'] === 1 &&
  673. !scope.row['periodPlush']
  674. "
  675. >
  676. <div v-if="scope.row[item.prop] === 1">
  677. <div
  678. v-if="
  679. scope.row['officialStatusTime'] &&
  680. scope.row['userUpdates'][0].createTime <
  681. scope.row['officialStatusTime']
  682. "
  683. >
  684. 正常
  685. </div>
  686. <div v-else style="color: red">
  687. 有变更<span
  688. style="margin-left: 6px; color: blue; cursor: pointer"
  689. @click="isShowBoxsFun(scope.row)"
  690. >查看</span
  691. >
  692. </div>
  693. </div>
  694. <span v-else> 正常 </span>
  695. </div>
  696. <div
  697. v-if="
  698. scope.row['interfacePushId'] === 1 &&
  699. scope.row['periodPlush'] === 1
  700. "
  701. >
  702. <div v-if="scope.row[item.prop] === 1">
  703. <div
  704. v-if="
  705. scope.row['officialStatusTime'] &&
  706. scope.row['userUpdates'][0].createTime <
  707. scope.row['officialStatusTime']
  708. "
  709. >
  710. 正常
  711. </div>
  712. <div v-else style="color: purple">
  713. 有变更<span
  714. style="margin-left: 6px; color: blue; cursor: pointer"
  715. @click="isShowBoxsFun(scope.row)"
  716. >查看</span
  717. >
  718. </div>
  719. </div>
  720. <span v-else> 正常 </span>
  721. </div>
  722. </template>
  723. </div>
  724. <span
  725. v-else-if="item.scope === 'finishStatus'"
  726. :style="scope.row[item.prop] === 0 ? 'color:red' : ''"
  727. >
  728. {{
  729. scope.row[item.prop] === 0
  730. ? "未学完"
  731. : scope.row[item.prop] === 1
  732. ? "已学完"
  733. : ""
  734. }}
  735. </span>
  736. <span v-else-if="item.scope === 'computer'">
  737. {{ scope.row[item.prop1] + "/" + scope.row[item.prop2] }}
  738. {{
  739. scope.row[item.prop1] == 0 && scope.row[item.prop2] == 0
  740. ? "0%"
  741. : (
  742. (scope.row[item.prop1] / scope.row[item.prop2]) *
  743. 100
  744. ).toFixed(2) + "%"
  745. }}
  746. </span>
  747. <span v-else-if="item.scope === 'cType'">
  748. <el-tag
  749. type="success"
  750. v-if="
  751. compType(scope.row[item.prop], scope.row['requestMethod']) ===
  752. '新增'
  753. "
  754. >
  755. {{
  756. compType(scope.row[item.prop], scope.row["requestMethod"])
  757. }}</el-tag
  758. >
  759. <el-tag
  760. v-if="
  761. compType(scope.row[item.prop], scope.row['requestMethod']) ===
  762. '修改'
  763. "
  764. >
  765. {{
  766. compType(scope.row[item.prop], scope.row["requestMethod"])
  767. }}</el-tag
  768. >
  769. <el-tag
  770. type="warning"
  771. v-if="
  772. compType(scope.row[item.prop], scope.row['requestMethod']) ===
  773. '查询'
  774. "
  775. >
  776. {{
  777. compType(scope.row[item.prop], scope.row["requestMethod"])
  778. }}</el-tag
  779. >
  780. </span>
  781. <span v-else-if="item.scope === 'time'">{{
  782. numTime(scope.row[item.prop])
  783. }}</span>
  784. <span v-else-if="item.scope === 'isgzhOpenId'">{{
  785. scope.row[item.prop] ? "是" : "否"
  786. }}</span>
  787. <span v-else-if="item.scope === 'timeBtn'"
  788. >{{ numTime(scope.row[item.prop]) }}
  789. <el-button type="text" @click="getxq(scope.row)">详情</el-button>
  790. </span>
  791. <span
  792. class="editInfoSty"
  793. v-else-if="item.scope === 'editInfo'"
  794. @click="editInfo(scope.row)"
  795. >{{ scope.row[item.prop] }}
  796. </span>
  797. <div v-else-if="item.scope === 'editName'">
  798. <span>{{ scope.row[item.prop] }}</span>
  799. <el-button
  800. style="margin-left: 6px"
  801. type="text"
  802. @click="editInfo(scope.row, 2)"
  803. >修改</el-button
  804. >
  805. </div>
  806. <span v-else-if="item.scope === 'InfoMore'"
  807. >{{ scope.row[item.prop1] }} - {{ scope.row[item.prop2] }}
  808. </span>
  809. <div
  810. class="editInfoSty"
  811. v-else-if="item.scope === 'editInfoHTML'"
  812. @click="editInfo(scope.row)"
  813. >
  814. {{ getSimpleText(scope.row[item.prop]) }}
  815. </div>
  816. <div v-else-if="item.scope === 'editInfoHTMLs'">
  817. {{ getSimpleText(scope.row[item.prop]) }}
  818. </div>
  819. <span v-else-if="item.scope === 'minute'">{{
  820. numTimeminute(scope.row[item.prop])
  821. }}</span>
  822. <span
  823. v-else-if="item.scope === 'jumpPage'"
  824. @click="jumpPage(scope.row)"
  825. style="color: #409eff; cursor: pointer"
  826. >{{ scope.row[item.prop] }}</span
  827. >
  828. <span v-else-if="item.scope === 'objType'">
  829. {{
  830. scope.row[item.objProp].length
  831. ? scope.row[item.objProp][0][item.prop]
  832. : ""
  833. }}
  834. </span>
  835. <span v-else-if="item.scope === 'isOKs'" style="color: red"
  836. >审核通过</span
  837. >
  838. <span v-else-if="item.scope === 'eduTypes'">
  839. {{
  840. scope.row[item.prop1] +
  841. "-" +
  842. scope.row[item.prop2] +
  843. "-" +
  844. scope.row[item.prop3]
  845. }}{{ scope.row[item.prop4] ? "-" + scope.row[item.prop4] : "" }}
  846. </span>
  847. <span v-else-if="item.scope === 'peopleNums'">
  848. {{ scope.row[item.prop1] }} / {{ scope.row[item.prop2] }}
  849. </span>
  850. <span
  851. v-else-if="item.scope === 'jumpPageLabel'"
  852. @click="jumpPageLabel(scope.row)"
  853. style="color: #409eff; cursor: pointer"
  854. >{{ scope.row[item.prop] }}</span
  855. >
  856. <span v-else-if="item.scope === 'urlStatus'">
  857. {{
  858. scope.row[item.prop] === 1
  859. ? scope.row[item.prop1]
  860. : scope.row[item.prop] === 2
  861. ? scope.row[item.prop2]
  862. : scope.row[item.prop] === 3
  863. ? scope.row[item.prop3]
  864. : ""
  865. }}
  866. </span>
  867. <span
  868. v-else-if="item.scope === 'jumpPageLabelProfess'"
  869. @click="jumpPageLabelProfess(scope.row)"
  870. style="color: #409eff; cursor: pointer"
  871. >{{ scope.row[item.prop] }}</span
  872. >
  873. <span
  874. v-else-if="item.scope === 'infoJump'"
  875. @click="jumpinfoJump(scope.row)"
  876. style="color: #409eff; cursor: pointer"
  877. >详情</span
  878. >
  879. <div v-else-if="item.scope === 'learnStatus'">
  880. <div v-if="scope.row.learnStatus === 0" style="color: red">
  881. 未开通
  882. </div>
  883. <div v-if="scope.row.learnStatus === 1">已开通</div>
  884. <div v-if="scope.row.learnStatus === 2">
  885. 标记失败
  886. <el-popover placement="right" trigger="click" width="360">
  887. <div>
  888. <p>账号开通状态为:标记失败</p>
  889. <p>失败原因:<br />{{ scope.row.reason }}</p>
  890. </div>
  891. <el-button type="text" slot="reference">原因</el-button>
  892. </el-popover>
  893. </div>
  894. </div>
  895. <span v-else-if="item.scope === 'ptai'">{{
  896. scope.row[item.prop] == 1 ? "微信小程序" : "未知"
  897. }}</span>
  898. <div v-else-if="item.scope === 'isOptions'">
  899. <template v-for="(itemt, indext) in item.options">
  900. <span
  901. :key="indext"
  902. v-if="itemt.value === scope.row[item.prop]"
  903. :style="itemt.style ? itemt.style : ''"
  904. >{{ itemt.label }}
  905. <el-button
  906. type="text"
  907. v-if="itemt.click"
  908. @click="backFunc(scope.row)"
  909. >查看</el-button
  910. ></span
  911. >
  912. </template>
  913. </div>
  914. <div v-else-if="item.scope === 'isOptionsDY'">
  915. <template v-for="(itemt, indext) in item.options">
  916. <div
  917. :key="indext"
  918. v-if="itemt.value === scope.row[item.prop]"
  919. :style="
  920. scope.row[item.prop] == 5 ? 'color:rgb(132, 0, 255);' : ''
  921. "
  922. >
  923. <el-popover
  924. :key="indext"
  925. trigger="hover"
  926. v-if="itemt.popover === true"
  927. >
  928. <span
  929. >订单编号(业务系统):{{ scope.row[item.oldOrder] }}</span
  930. >
  931. <el-button type="text" slot="reference">{{
  932. itemt.label
  933. }}</el-button>
  934. </el-popover>
  935. <span v-else
  936. >{{ itemt.label }}
  937. <el-button
  938. type="text"
  939. v-if="itemt.click"
  940. @click="backFunc(scope.row)"
  941. >查看</el-button
  942. ></span
  943. >
  944. </div>
  945. </template>
  946. </div>
  947. <div v-else-if="item.scope === 'orderGoodsStatus'">
  948. {{
  949. scope.row[item.prop] === -1
  950. ? "关闭"
  951. : scope.row[item.prop] === 0
  952. ? "待支付"
  953. : scope.row[item.prop] === 1
  954. ? `已支付(¥${scope.row["goodsReceived"]})`
  955. : scope.row[item.prop] === 2
  956. ? `已退款(¥${scope.row["goodsReceived"]})`
  957. : ""
  958. }}
  959. </div>
  960. <div v-else-if="item.scope === 'solt'">
  961. <slot :name="item.soltName" :scope="scope"></slot>
  962. </div>
  963. <div v-else>
  964. {{ scope.row[item.prop] }}
  965. {{
  966. (scope.row[item.prop] || scope.row[item.prop] === 0) && item.ch
  967. ? item.ch
  968. : ""
  969. }}
  970. </div>
  971. </template>
  972. </af-table-column>
  973. <el-table-column
  974. label="操作"
  975. align="center"
  976. fixed="right"
  977. :width="navText.changeWidth ? navText.changeWidth : '180px'"
  978. v-if="!navText.tableHide"
  979. >
  980. <template slot-scope="scope">
  981. <slot name="btn" :scope="scope"></slot>
  982. </template>
  983. </el-table-column>
  984. </el-table>
  985. <el-dialog
  986. :visible.sync="diaBox"
  987. width="500px"
  988. :show-close="false"
  989. :destroy-on-close="true"
  990. >
  991. <div slot="title" class="hearders">
  992. <div class="leftTitle">详情</div>
  993. <div class="rightBoxs">
  994. <img
  995. src="@/assets/images/Close@2x.png"
  996. alt=""
  997. @click="closeBeforefs"
  998. />
  999. </div>
  1000. </div>
  1001. <el-row class="contentBox" :gutter="30">
  1002. <div style="width: 100%; height: 100%">
  1003. <video
  1004. controls
  1005. preload
  1006. style="width: 100%; height: 100%"
  1007. :src="$methodsTools.splitImgHost(videoUrls)"
  1008. ></video>
  1009. </div>
  1010. </el-row>
  1011. <div slot="footer" class="dialog-footer">
  1012. <el-button @click="closeBeforefs">关闭</el-button>
  1013. </div>
  1014. </el-dialog>
  1015. <el-dialog
  1016. :visible.sync="dialogVisible"
  1017. width="560px"
  1018. :show-close="false"
  1019. :close-on-click-modal="false"
  1020. >
  1021. <div slot="title" class="hearders">
  1022. <div class="leftTitle">课程树形图</div>
  1023. <div class="rightBoxs">
  1024. <img src="@/assets/images/Close@2x.png" alt="" @click="closes" />
  1025. </div>
  1026. </div>
  1027. <div>
  1028. <el-tree
  1029. :key="Math.random()"
  1030. :props="props"
  1031. :load="loadNode"
  1032. lazy
  1033. ></el-tree>
  1034. </div>
  1035. <span slot="footer" class="dialog-footer">
  1036. <el-button @click="closes">取 消</el-button>
  1037. </span>
  1038. </el-dialog>
  1039. <el-dialog
  1040. :visible.sync="diaviosOpen"
  1041. width="560px"
  1042. :show-close="false"
  1043. :close-on-click-modal="false"
  1044. >
  1045. <div slot="title" class="hearders">
  1046. <div class="leftTitle">商品树形图</div>
  1047. <div class="rightBoxs">
  1048. <img
  1049. src="@/assets/images/Close@2x.png"
  1050. alt=""
  1051. @click="diaviosOpen = false"
  1052. />
  1053. </div>
  1054. </div>
  1055. <div style="max-height: 600px; overflow: auto">
  1056. <el-tree
  1057. v-if="diaviosOpen"
  1058. default-expand-all
  1059. :key="Math.random()"
  1060. :props="props1"
  1061. :load="loadNode1"
  1062. lazy
  1063. ></el-tree>
  1064. </div>
  1065. <span slot="footer" class="dialog-footer">
  1066. <el-button @click="diaviosOpen = false">取 消</el-button>
  1067. </span>
  1068. </el-dialog>
  1069. <el-dialog
  1070. :visible.sync="isShowBoxs"
  1071. width="400px"
  1072. :show-close="false"
  1073. :close-on-click-modal="false"
  1074. >
  1075. <div slot="title" class="hearders">
  1076. <div class="leftTitle">资料变更详情</div>
  1077. <div class="rightBoxs">
  1078. <img
  1079. src="@/assets/images/Close@2x.png"
  1080. alt=""
  1081. @click="isShowBoxs = false"
  1082. />
  1083. </div>
  1084. </div>
  1085. <div style="max-height: 400px; overflow: auto">
  1086. <ul>
  1087. <li
  1088. v-for="(items, indexs) in listBoxsGET"
  1089. :key="indexs"
  1090. style="margin-bottom: 30px"
  1091. >
  1092. <p>{{ $methodsTools.onlyForma(items.createTime) }}</p>
  1093. <p style="padding-left: 14px; color: #999">
  1094. 姓名:{{ items.realname }}
  1095. </p>
  1096. <p style="padding-left: 14px; color: #999">
  1097. 身份证号码:{{ items.idCard }}
  1098. </p>
  1099. <p style="padding-left: 14px; color: #999">
  1100. 绑定手机号码:{{ items.telphone }}
  1101. </p>
  1102. </li>
  1103. </ul>
  1104. </div>
  1105. <span slot="footer" class="dialog-footer">
  1106. <el-button @click="isShowBoxs = false">取 消</el-button>
  1107. </span>
  1108. </el-dialog>
  1109. <el-dialog
  1110. :visible.sync="diaviosTKOpen"
  1111. width="560px"
  1112. :show-close="false"
  1113. :close-on-click-modal="false"
  1114. >
  1115. <div slot="title" class="hearders">
  1116. <div class="leftTitle">商品树形图</div>
  1117. <div class="rightBoxs">
  1118. <img
  1119. src="@/assets/images/Close@2x.png"
  1120. alt=""
  1121. @click="diaviosTKOpen = false"
  1122. />
  1123. </div>
  1124. </div>
  1125. <div style="max-height: 600px; overflow: auto">
  1126. <el-tree
  1127. v-if="diaviosTKOpen"
  1128. default-expand-all
  1129. :key="Math.random()"
  1130. :props="props2"
  1131. :load="loadNode2"
  1132. lazy
  1133. ></el-tree>
  1134. </div>
  1135. <span slot="footer" class="dialog-footer">
  1136. <el-button @click="diaviosTKOpen = false">取 消</el-button>
  1137. </span>
  1138. </el-dialog>
  1139. </div>
  1140. </template>
  1141. <script>
  1142. import bankMsg from "./bankMsg";
  1143. export default {
  1144. components: { bankMsg },
  1145. props: [
  1146. "tableSets",
  1147. "tableData",
  1148. "navText",
  1149. "rowKey",
  1150. "loading",
  1151. "studentTable",
  1152. "objectSpanMethod",
  1153. "radio",
  1154. ],
  1155. data: function () {
  1156. return {
  1157. diaviosOpen: false,
  1158. diaviosTKOpen: false,
  1159. dialogVisible: false,
  1160. tableSet: this.tableSets,
  1161. allCheckData: [], //表格多选
  1162. checkAll: true,
  1163. checkedCities: [], //自定义列 选中数组
  1164. cities: [], //自定义列 总数组
  1165. isIndeterminate: false,
  1166. videoUrls: "",
  1167. diaBox: false,
  1168. isShowBoxs: false,
  1169. listBoxsGET: [],
  1170. props: {
  1171. label(data, node) {
  1172. return data.menuName || data.name;
  1173. },
  1174. isLeaf(data, node) {
  1175. return data.hasChildren ? false : true;
  1176. },
  1177. },
  1178. props1: {
  1179. label(data, node) {
  1180. return data.courseName || data.menuName || data.name;
  1181. },
  1182. isLeaf(data, node) {
  1183. return data.hasChildren ? false : true;
  1184. },
  1185. },
  1186. props2: {
  1187. label(data, node) {
  1188. return data.examName || data.menuName || data.name;
  1189. },
  1190. isLeaf(data, node) {
  1191. return data.hasChildren ? false : true;
  1192. },
  1193. },
  1194. treeDatas: [],
  1195. treeDatas1: [],
  1196. treeDatas2: [],
  1197. };
  1198. },
  1199. computed: {
  1200. tableRadio: {
  1201. get() {
  1202. return this.radio;
  1203. },
  1204. set(val) {
  1205. this.$emit("update:radio", val);
  1206. },
  1207. },
  1208. compTableSet: function () {
  1209. return function (options) {
  1210. var arrays = options.filter((item) => {
  1211. return item.hidden;
  1212. });
  1213. return arrays;
  1214. };
  1215. },
  1216. numTime: function () {
  1217. return function (res) {
  1218. return Number(res / 3600).toFixed(2);
  1219. };
  1220. },
  1221. numTimeminute: function () {
  1222. return function (res) {
  1223. return Number(res / 60).toFixed(2);
  1224. };
  1225. },
  1226. compType: function () {
  1227. return function (res, data) {
  1228. if (data === "POST") {
  1229. if (res.indexOf("edit") !== -1 || res.indexOf("update") !== -1) {
  1230. return "修改";
  1231. } else {
  1232. return "新增";
  1233. }
  1234. } else if (data === "GET") {
  1235. return "查询";
  1236. }
  1237. };
  1238. },
  1239. },
  1240. created() {
  1241. if (this.studentTable) {
  1242. let data = sessionStorage.getItem("studentTableList");
  1243. if (data && data !== "") {
  1244. this.tableSet = JSON.parse(data);
  1245. }
  1246. }
  1247. this.inittableSet = JSON.stringify(this.tableSet);
  1248. this.initTR();
  1249. },
  1250. methods: {
  1251. radioChange(val) {},
  1252. /**
  1253. * 学习账号标记跳转班级
  1254. */
  1255. backClassView(row, type) {
  1256. this.$emit("classView", row, type);
  1257. },
  1258. blurBackData(row) {
  1259. this.$emit("sortFunc", row);
  1260. },
  1261. backFunc(row) {
  1262. this.$emit("backFunc", row);
  1263. },
  1264. /**
  1265. * 清除多选框
  1266. */
  1267. clearMoreActive() {
  1268. this.allCheckData = [];
  1269. this.$refs.pagerset.clearSelection();
  1270. },
  1271. isShowBoxsFun(item) {
  1272. this.$api.inquireuserUpdateListsy({ userId: item.userId }).then((res) => {
  1273. this.listBoxsGET = res.rows;
  1274. this.isShowBoxs = true;
  1275. // this.$api
  1276. // .editgradestudentuserUpdate({ userId: item.userId, status: 1 })
  1277. // .then((result) => {});
  1278. });
  1279. },
  1280. openDialog(row) {
  1281. this.$emit("openDialog", row);
  1282. },
  1283. sortMethods(a, b) {
  1284. if (a.classGradeUserGoodsVoList && b.classGradeUserGoodsVoList) {
  1285. return a.classGradeUserGoodsVoList.length >
  1286. b.classGradeUserGoodsVoList.length
  1287. ? -1
  1288. : 1;
  1289. } else {
  1290. return a.sort > b.sort ? -1 : 1;
  1291. }
  1292. },
  1293. openSpec(id) {
  1294. this.$emit("openClassNum", id);
  1295. },
  1296. /**
  1297. * int: 1 节列表-关联章 2 章列表-关联模块 3 模块列表-关联课程 4 课程列表-关联商品 5 题目列表-关联试卷 6 试卷列表-关联商品 7 章卷列表-关联商品 8 模块列表-关联商品
  1298. */
  1299. jumpPages(v, int) {
  1300. if (int === 1) {
  1301. const jump = () => {
  1302. this.$router.push({
  1303. path: "/resource/videoManagement/chapterEdit",
  1304. query: {
  1305. id: v.chapterId,
  1306. },
  1307. });
  1308. };
  1309. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1310. (item) => {
  1311. return item.name == "ChapterEdit";
  1312. }
  1313. );
  1314. if (statusPage) {
  1315. this.$store
  1316. .dispatch("tagsView/delCachedView", {
  1317. name: "ChapterEdit",
  1318. })
  1319. .then((res) => {
  1320. jump();
  1321. });
  1322. } else {
  1323. jump();
  1324. }
  1325. }
  1326. if (int === 2) {
  1327. const jump = () => {
  1328. this.$router.push({
  1329. path: "/resource/videoManagement/moduleManagementEdit",
  1330. query: {
  1331. id: v.moduleId,
  1332. },
  1333. });
  1334. };
  1335. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1336. (item) => {
  1337. return item.name == "ModuleManagementEdit";
  1338. }
  1339. );
  1340. if (statusPage) {
  1341. this.$store
  1342. .dispatch("tagsView/delCachedView", {
  1343. name: "ModuleManagementEdit",
  1344. })
  1345. .then((res) => {
  1346. jump();
  1347. });
  1348. } else {
  1349. jump();
  1350. }
  1351. }
  1352. if (int === 3) {
  1353. const jump = () => {
  1354. this.$router.push({
  1355. path: "/resource/videoManagement/editCourse",
  1356. query: {
  1357. id: v.courseId,
  1358. },
  1359. });
  1360. };
  1361. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1362. (item) => {
  1363. return item.name == "EditCourse";
  1364. }
  1365. );
  1366. if (statusPage) {
  1367. this.$store
  1368. .dispatch("tagsView/delCachedView", {
  1369. name: "EditCourse",
  1370. })
  1371. .then((res) => {
  1372. jump();
  1373. });
  1374. } else {
  1375. jump();
  1376. }
  1377. }
  1378. if (int === 4) {
  1379. const jump = () => {
  1380. this.$router.push({
  1381. name: "CommodityManageMentEdit",
  1382. query: {
  1383. id: v.goodsId,
  1384. },
  1385. });
  1386. };
  1387. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1388. (item) => {
  1389. return item.name == "CommodityManageMentEdit";
  1390. }
  1391. );
  1392. if (statusPage) {
  1393. this.$store
  1394. .dispatch("tagsView/delCachedView", {
  1395. name: "CommodityManageMentEdit",
  1396. })
  1397. .then((res) => {
  1398. jump();
  1399. });
  1400. } else {
  1401. jump();
  1402. }
  1403. }
  1404. if (int === 5) {
  1405. const jump = () => {
  1406. this.$router.push({
  1407. path: "/resource/bankManagement/editPaper",
  1408. query: {
  1409. id: v.examId,
  1410. },
  1411. });
  1412. };
  1413. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1414. (item) => {
  1415. return item.name == "EditPaper";
  1416. }
  1417. );
  1418. if (statusPage) {
  1419. this.$store
  1420. .dispatch("tagsView/delCachedView", {
  1421. name: "EditPaper",
  1422. })
  1423. .then((res) => {
  1424. jump();
  1425. });
  1426. } else {
  1427. jump();
  1428. }
  1429. }
  1430. if (int === 6) {
  1431. const jump = () => {
  1432. this.$router.push({
  1433. path: "/Marketing/goods/commodityManageMentEdit",
  1434. query: {
  1435. id: v.goodsId,
  1436. },
  1437. });
  1438. };
  1439. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1440. (item) => {
  1441. return item.name == "CommodityManageMentEdit";
  1442. }
  1443. );
  1444. if (statusPage) {
  1445. this.$store
  1446. .dispatch("tagsView/delCachedView", {
  1447. name: "CommodityManageMentEdit",
  1448. })
  1449. .then((res) => {
  1450. jump();
  1451. });
  1452. } else {
  1453. jump();
  1454. }
  1455. }
  1456. if (int === 7) {
  1457. const jump = () => {
  1458. this.$router.push({
  1459. path: "/Marketing/goods/commodityManageMentEdit",
  1460. query: {
  1461. id: v.goodsId,
  1462. },
  1463. });
  1464. };
  1465. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1466. (item) => {
  1467. return item.name == "CommodityManageMentEdit";
  1468. }
  1469. );
  1470. if (statusPage) {
  1471. this.$store
  1472. .dispatch("tagsView/delCachedView", {
  1473. name: "CommodityManageMentEdit",
  1474. })
  1475. .then((res) => {
  1476. jump();
  1477. });
  1478. } else {
  1479. jump();
  1480. }
  1481. }
  1482. if (int === 8) {
  1483. const jump = () => {
  1484. this.$router.push({
  1485. path: "/Marketing/goods/commodityManageMentEdit",
  1486. query: {
  1487. id: v.goodsId,
  1488. },
  1489. });
  1490. };
  1491. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1492. (item) => {
  1493. return item.name == "CommodityManageMentEdit";
  1494. }
  1495. );
  1496. if (statusPage) {
  1497. this.$store
  1498. .dispatch("tagsView/delCachedView", {
  1499. name: "CommodityManageMentEdit",
  1500. })
  1501. .then((res) => {
  1502. jump();
  1503. });
  1504. } else {
  1505. jump();
  1506. }
  1507. }
  1508. },
  1509. getSimpleText(html) {
  1510. var re1 = new RegExp("<.+?>", "g"); //匹配html标签的正则表达式,"g"是搜索匹配多个符合的内容
  1511. var msg = html.replace(re1, ""); //执行替换成空字符
  1512. return msg;
  1513. },
  1514. //树形图关闭
  1515. closes() {
  1516. this.dialogVisible = false;
  1517. },
  1518. loadNode(node, resolve) {
  1519. if (node.level === 0) {
  1520. this.treeDatas.forEach((item) => {
  1521. if (item.type === 1) {
  1522. item.hasChildren = true;
  1523. }
  1524. if (item.type === 2) {
  1525. item.hasChildren = true;
  1526. }
  1527. if (item.type === 3) {
  1528. item.hasChildren = false;
  1529. }
  1530. });
  1531. return resolve(this.treeDatas);
  1532. } else {
  1533. if (node.data.type === 1) {
  1534. this.$api
  1535. .inquireCourseListmodulechapter(node.data.menuId)
  1536. .then((res) => {
  1537. res.data.forEach((item) => {
  1538. item.TypeId = 2 + "-" + item.chapterId;
  1539. item.hasChildren = true;
  1540. item.menuId = item.chapterId;
  1541. item.type = 2;
  1542. });
  1543. return resolve(res.data);
  1544. });
  1545. }
  1546. if (node.data.type === 2) {
  1547. this.$api
  1548. .inquireCoursechaptersectionlist(node.data.menuId)
  1549. .then((res) => {
  1550. res.data.forEach((item) => {
  1551. item.TypeId = 3 + "-" + item.sectionId;
  1552. item.type = 3;
  1553. });
  1554. return resolve(res.data);
  1555. });
  1556. }
  1557. if (node.data.type === 3) {
  1558. return resolve([]);
  1559. }
  1560. }
  1561. },
  1562. diavios(ids) {
  1563. console.log(ids, "触发");
  1564. this.$api.obtainCourseSgoodsId(ids).then((res) => {
  1565. res.rows.forEach((item) => {
  1566. item.TypeId = "0-" + item.courseId;
  1567. item.type = 0;
  1568. item.hasChildren = true;
  1569. });
  1570. this.treeDatas1 = res.rows;
  1571. this.diaviosOpen = true;
  1572. });
  1573. },
  1574. loadNode1(node, resolve) {
  1575. if (node.level === 0) {
  1576. return resolve(this.treeDatas1);
  1577. } else {
  1578. if (node.data.type === 0) {
  1579. this.$api
  1580. .inquireCoursemenuListS({ courseId: node.data.courseId })
  1581. .then((res) => {
  1582. res.rows.forEach((item) => {
  1583. item.TypeId = 1 + "-" + item.menuId;
  1584. item.hasChildren = item.type === 3 ? false : true;
  1585. item.menuId = item.menuId;
  1586. });
  1587. return resolve(res.rows);
  1588. });
  1589. }
  1590. if (node.data.type === 1) {
  1591. this.$api
  1592. .inquireCourseListmodulechapter(node.data.menuId)
  1593. .then((res) => {
  1594. res.data.forEach((item) => {
  1595. item.TypeId = 2 + "-" + item.chapterId;
  1596. item.hasChildren = true;
  1597. item.menuId = item.chapterId;
  1598. item.type = 2;
  1599. });
  1600. return resolve(res.data);
  1601. });
  1602. }
  1603. if (node.data.type === 2) {
  1604. this.$api
  1605. .inquireCoursechaptersectionlist(node.data.menuId)
  1606. .then((res) => {
  1607. res.data.forEach((item) => {
  1608. item.TypeId = 3 + "-" + item.sectionId;
  1609. item.type = 3;
  1610. });
  1611. return resolve(res.data);
  1612. });
  1613. }
  1614. if (node.data.type === 3) {
  1615. return resolve([]);
  1616. }
  1617. }
  1618. },
  1619. openBoxData(row) {
  1620. this.$emit("openBoxFun", row);
  1621. },
  1622. diaviosTK(ids) {
  1623. this.$api.inquireGoodsbanklist({ goodsId: ids }).then((res) => {
  1624. res.data.forEach((item) => {
  1625. item.TypeId = item.type + "-" + item.majorId;
  1626. item.hasChildren = item.type === 3 ? false : true;
  1627. });
  1628. this.treeDatas2 = res.data;
  1629. this.diaviosTKOpen = true;
  1630. });
  1631. },
  1632. loadNode2(node, resolve) {
  1633. if (node.level === 0) {
  1634. return resolve(this.treeDatas2);
  1635. } else {
  1636. if (node.data.type === 1) {
  1637. this.$api
  1638. .inquireBankchapterModule({ moduleExamId: node.data.majorId })
  1639. .then((res) => {
  1640. res.data.forEach((item) => {
  1641. item.TypeId = 2 + "-" + item.chapterExamId;
  1642. item.menuId = item.chapterExamId;
  1643. item.type = 2;
  1644. });
  1645. return resolve(res.data);
  1646. });
  1647. }
  1648. if (node.data.type === 2) {
  1649. this.$api
  1650. .inquirebankchapterexamList({
  1651. chapterExamId: node.data.majorId,
  1652. })
  1653. .then((res) => {
  1654. res.data.forEach((item) => {
  1655. item.TypeId = 3 + "-" + item.examId;
  1656. item.type = 3;
  1657. });
  1658. return resolve(res.data);
  1659. });
  1660. }
  1661. if (node.data.type === 3) {
  1662. return resolve([]);
  1663. }
  1664. }
  1665. },
  1666. timeStyle(column) {
  1667. if (column.columnIndex === 0 && this.navText.firstColLeft) {
  1668. return "text-align:left!important; padding-left: 40px;";
  1669. }
  1670. },
  1671. //初始化
  1672. initTR() {
  1673. this.cities = [];
  1674. this.checkedCities = [];
  1675. this.checkAll = true;
  1676. this.isIndeterminate = false;
  1677. this.tableSet.forEach((item, index) => {
  1678. this.cities.push(item.label);
  1679. if (item.hidden) {
  1680. this.checkedCities.push(item.label);
  1681. }
  1682. });
  1683. this.tableSet = [];
  1684. this.$nextTick(() => {
  1685. this.tableSet = JSON.parse(this.inittableSet);
  1686. });
  1687. if (this.checkedCities.length === 0) {
  1688. this.isIndeterminate = false;
  1689. } else if (this.checkedCities.length === this.cities.length) {
  1690. this.isIndeterminate = false;
  1691. this.checkAll = true;
  1692. } else {
  1693. this.isIndeterminate = true;
  1694. this.checkAll = false;
  1695. }
  1696. },
  1697. //自定义列全选按钮触发
  1698. handleCheckAllChange(val) {
  1699. this.checkedCities = val ? this.cities : [];
  1700. this.isIndeterminate = false;
  1701. if (val) {
  1702. this.tableSet = [];
  1703. this.$nextTick(() => {
  1704. this.tableSet = JSON.parse(this.inittableSet);
  1705. });
  1706. } else {
  1707. this.tableSet.forEach((item, index) => {
  1708. item.hidden = false;
  1709. });
  1710. }
  1711. },
  1712. // 勾选自定义列子选项
  1713. handleCheckedCitiesChange(value) {
  1714. var copyTable = JSON.parse(JSON.stringify(this.tableSet));
  1715. let checkedCount = value.length;
  1716. this.checkAll = checkedCount === this.cities.length;
  1717. this.isIndeterminate =
  1718. checkedCount > 0 && checkedCount < this.cities.length;
  1719. this.tableSet = [];
  1720. this.$nextTick(() => {
  1721. this.tableSet = copyTable;
  1722. });
  1723. },
  1724. checkboxChange(v, e) {
  1725. var copyTable = JSON.parse(JSON.stringify(this.tableSet));
  1726. copyTable.forEach((item) => {
  1727. if (item.label === v) {
  1728. item.hidden = e;
  1729. }
  1730. });
  1731. this.tableSet = [];
  1732. this.$nextTick(() => {
  1733. this.tableSet = copyTable;
  1734. if (this.studentTable) {
  1735. sessionStorage.setItem("studentTableList", JSON.stringify(copyTable));
  1736. }
  1737. });
  1738. },
  1739. //自定义列重置
  1740. initVue() {
  1741. // this.$emit("initTableset");
  1742. this.tableSet = JSON.parse(this.inittableSet);
  1743. this.initTR();
  1744. },
  1745. // 下移
  1746. downMove(option, index) {
  1747. if (index !== this.tableSet.length - 1) {
  1748. this.tableSet[index] = this.tableSet.splice(
  1749. index + 1,
  1750. 1,
  1751. this.tableSet[index]
  1752. )[0];
  1753. this.cities[index] = this.cities.splice(
  1754. index + 1,
  1755. 1,
  1756. this.cities[index]
  1757. )[0];
  1758. } else {
  1759. this.tableSet.unshift(this.tableSet.splice(index, 1)[0]);
  1760. this.cities.unshift(this.cities.splice(index, 1)[0]);
  1761. }
  1762. var copyTable = JSON.parse(JSON.stringify(this.tableSet));
  1763. this.tableSet = [];
  1764. this.$nextTick(() => {
  1765. this.tableSet = copyTable;
  1766. });
  1767. },
  1768. // 上移
  1769. upMove(option, index) {
  1770. if (index != 0) {
  1771. this.tableSet[index] = this.tableSet.splice(
  1772. index - 1,
  1773. 1,
  1774. this.tableSet[index]
  1775. )[0];
  1776. this.cities[index] = this.cities.splice(
  1777. index - 1,
  1778. 1,
  1779. this.cities[index]
  1780. )[0];
  1781. } else {
  1782. this.tableSet.push(this.tableSet.shift());
  1783. this.cities.push(this.cities.shift());
  1784. }
  1785. var copyTable = JSON.parse(JSON.stringify(this.tableSet));
  1786. this.tableSet = [];
  1787. this.$nextTick(() => {
  1788. this.tableSet = copyTable;
  1789. });
  1790. },
  1791. //跳转页面
  1792. jumpPage(options) {
  1793. const jump = () => {
  1794. this.$router.push({
  1795. path: "dictData",
  1796. query: {
  1797. dictId: options.dictId,
  1798. dictType: options.dictType,
  1799. },
  1800. });
  1801. };
  1802. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1803. (item) => {
  1804. return item.name == "DictData";
  1805. }
  1806. );
  1807. if (statusPage) {
  1808. this.$store
  1809. .dispatch("tagsView/delCachedView", {
  1810. name: "DictData",
  1811. })
  1812. .then((res) => {
  1813. jump();
  1814. });
  1815. } else {
  1816. jump();
  1817. }
  1818. },
  1819. //跳转页面
  1820. jumpPageLabel(options) {
  1821. const jump = () => {
  1822. this.$router.push({
  1823. path: "labelInfos",
  1824. query: {
  1825. id: options.id,
  1826. },
  1827. });
  1828. };
  1829. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1830. (item) => {
  1831. return item.name == "LabelInfos";
  1832. }
  1833. );
  1834. if (statusPage) {
  1835. this.$store
  1836. .dispatch("tagsView/delCachedView", {
  1837. name: "LabelInfos",
  1838. })
  1839. .then((res) => {
  1840. jump();
  1841. });
  1842. } else {
  1843. jump();
  1844. }
  1845. }, //跳转页面
  1846. jumpPageLabelProfess(options) {
  1847. const jump = () => {
  1848. this.$router.push({
  1849. path: "labelInfos",
  1850. query: {
  1851. id: options.labelId,
  1852. },
  1853. });
  1854. };
  1855. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1856. (item) => {
  1857. return item.name == "LabelInfos";
  1858. }
  1859. );
  1860. if (statusPage) {
  1861. this.$store
  1862. .dispatch("tagsView/delCachedView", {
  1863. name: "LabelInfos",
  1864. })
  1865. .then((res) => {
  1866. jump();
  1867. });
  1868. } else {
  1869. jump();
  1870. }
  1871. },
  1872. jumpinfoJump(options) {
  1873. const jump = () => {
  1874. this.$router.push({
  1875. path: "beneficiaryInfos",
  1876. query: {
  1877. id: options.payeeId,
  1878. },
  1879. });
  1880. };
  1881. const statusPage = this.$store.state.tagsView.visitedViews.some(
  1882. (item) => {
  1883. return item.name == "BeneficiaryInfos";
  1884. }
  1885. );
  1886. if (statusPage) {
  1887. this.$store
  1888. .dispatch("tagsView/delCachedView", {
  1889. name: "BeneficiaryInfos",
  1890. })
  1891. .then((res) => {
  1892. jump();
  1893. });
  1894. } else {
  1895. jump();
  1896. }
  1897. },
  1898. //新增按钮
  1899. addClick() {
  1900. this.$emit("addClick");
  1901. },
  1902. //将选中值传回调用组件
  1903. backFather() {
  1904. this.$emit("emitData", this.allCheckData);
  1905. },
  1906. edit() {},
  1907. selectAll(value) {
  1908. this.allCheckData = value;
  1909. },
  1910. select(value) {
  1911. this.allCheckData = value;
  1912. },
  1913. load(tree, treeNode, resolve) {
  1914. this.$emit("load", tree, treeNode, resolve);
  1915. },
  1916. editInfo(option, int) {
  1917. if (int === 2) {
  1918. this.$emit("editName", option);
  1919. } else if (int === 3) {
  1920. this.$emit("aboutGoods", option);
  1921. } else {
  1922. this.$emit("editInfo", option);
  1923. }
  1924. },
  1925. getxq(option) {
  1926. this.$emit("getxq", option.userId);
  1927. },
  1928. openVideo(url) {
  1929. this.videoUrls = url;
  1930. this.diaBox = true;
  1931. },
  1932. closeBeforefs() {
  1933. this.diaBox = false;
  1934. },
  1935. },
  1936. };
  1937. </script>
  1938. <style lang="less">
  1939. .open_style {
  1940. cursor: pointer;
  1941. color: blue;
  1942. }
  1943. .el-table .cell.el-tooltip {
  1944. transition: all 0.3s;
  1945. }
  1946. .max-heightStyles {
  1947. max-height: 500px;
  1948. overflow-y: auto;
  1949. }
  1950. .overSty {
  1951. white-space: nowrap;
  1952. overflow-x: auto;
  1953. &::-webkit-scrollbar {
  1954. width: 14px;
  1955. height: 14px;
  1956. }
  1957. &::-webkit-scrollbar-track,
  1958. &::-webkit-scrollbar-thumb {
  1959. border-radius: 999px;
  1960. border: 5px solid transparent;
  1961. }
  1962. &::-webkit-scrollbar-track {
  1963. box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2) inset;
  1964. }
  1965. &::-webkit-scrollbar-thumb {
  1966. min-height: 20px;
  1967. background-clip: content-box;
  1968. box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.2) inset;
  1969. }
  1970. &::-webkit-scrollbar-corner {
  1971. background: transparent;
  1972. }
  1973. }
  1974. .slotPopper {
  1975. padding: 0px !important;
  1976. }
  1977. </style>
  1978. <style lang="less" scoped>
  1979. #tableList {
  1980. padding: 16px 16px 16px;
  1981. border-radius: 8px;
  1982. box-shadow: 0px 0px 9px 1px rgba(28, 41, 90, 0.1);
  1983. background: #ffffff;
  1984. .headerNavTool {
  1985. height: 72px;
  1986. display: flex;
  1987. justify-content: space-between;
  1988. align-items: center;
  1989. margin-top: -16px;
  1990. .rightBtnBox {
  1991. display: flex;
  1992. align-items: center;
  1993. }
  1994. }
  1995. }
  1996. .goodsListStyle {
  1997. cursor: pointer;
  1998. color: blue;
  1999. }
  2000. .popoverDis {
  2001. display: flex;
  2002. flex-direction: column;
  2003. align-items: flex-start;
  2004. font-size: 14px;
  2005. .checkboxHeader {
  2006. height: 40px;
  2007. display: flex;
  2008. align-items: center;
  2009. justify-content: space-between;
  2010. padding-left: 13px;
  2011. padding-right: 15px;
  2012. width: 100%;
  2013. .initbtns {
  2014. color: #47a6ff;
  2015. cursor: pointer;
  2016. }
  2017. }
  2018. .checkboxGroup {
  2019. display: flex;
  2020. flex-direction: column;
  2021. width: 100%;
  2022. .checkboxchild {
  2023. width: 100%;
  2024. justify-content: space-between;
  2025. height: 40px;
  2026. display: flex;
  2027. align-items: center;
  2028. padding: 0px 15px 0px 13px;
  2029. transition: all 0.4s;
  2030. &:hover {
  2031. background-color: #ecf5ff;
  2032. }
  2033. &:hover .icon-right {
  2034. display: flex;
  2035. }
  2036. .icon-right {
  2037. display: flex;
  2038. align-items: center;
  2039. width: 30px;
  2040. height: 30px;
  2041. color: #666;
  2042. font-size: 14px;
  2043. display: none;
  2044. i {
  2045. cursor: pointer;
  2046. margin: 0px 3px;
  2047. &:hover {
  2048. color: #47a6ff;
  2049. }
  2050. }
  2051. }
  2052. }
  2053. }
  2054. }
  2055. /deep/.el-checkbox__input.is-checked + .el-checkbox__label {
  2056. color: #666;
  2057. }
  2058. .imgboxsq {
  2059. margin: 0 auto;
  2060. height: 60px;
  2061. max-height: 60px;
  2062. .el_images {
  2063. /deep/.el-image__inner {
  2064. width: auto;
  2065. }
  2066. }
  2067. }
  2068. .imgHover {
  2069. width: 100%;
  2070. height: 100%;
  2071. cursor: pointer;
  2072. }
  2073. .cvideo {
  2074. transition: all 0.2s;
  2075. color: #333;
  2076. cursor: pointer;
  2077. font-size: 30px;
  2078. }
  2079. .cvideo:hover {
  2080. color: #47a6ff;
  2081. }
  2082. .editInfoSty {
  2083. cursor: pointer;
  2084. color: blue;
  2085. }
  2086. .ulAuto {
  2087. display: flex;
  2088. justify-content: center;
  2089. align-items: center;
  2090. & > ul {
  2091. margin: 0px;
  2092. }
  2093. }
  2094. .ulAutos {
  2095. display: flex;
  2096. align-items: center;
  2097. justify-content: center;
  2098. }
  2099. .el-popover > ul {
  2100. margin: 0px;
  2101. }
  2102. .dis_sdt {
  2103. display: flex;
  2104. align-items: flex-end;
  2105. ul {
  2106. margin: 0px;
  2107. li {
  2108. text-align: left;
  2109. }
  2110. }
  2111. }
  2112. .jumpStys {
  2113. color: blue;
  2114. cursor: pointer;
  2115. }
  2116. .zdyBoxStyle {
  2117. display: flex;
  2118. align-items: center;
  2119. justify-content: center;
  2120. .zdyBtnstyle {
  2121. padding: 4px 16px;
  2122. border-radius: 4px;
  2123. border: 1px solid #666;
  2124. color: #666;
  2125. cursor: pointer;
  2126. }
  2127. .goodsActiveStyle {
  2128. color: #fff;
  2129. background-color: #409eff;
  2130. border-color: #409eff;
  2131. }
  2132. }
  2133. .liSYTS {
  2134. padding: 10px;
  2135. margin-bottom: 16px;
  2136. background: #eee;
  2137. width: 96%;
  2138. }
  2139. .overBoxs {
  2140. max-height: 500px;
  2141. overflow-y: auto;
  2142. }
  2143. </style>