You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1445 lines
44 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. <template>
  2. <div style="padding:10px;">
  3. <!-- 搜索栏 -->
  4. <div class="search">
  5. <el-form :inline="true">
  6. <el-form-item label="剧本标题:" style="margin-right:50px;">
  7. <el-input
  8. v-model="queryParams.query.title"
  9. style="height:30px;"
  10. placeholder="请输入剧本标题"
  11. />
  12. </el-form-item>
  13. <el-form-item label="工作室:" style="margin-right:50px;">
  14. <el-input
  15. v-model="queryParams.query.studioName"
  16. style="height:30px;"
  17. placeholder="请输入工作室"
  18. />
  19. </el-form-item>
  20. <el-form-item label="标签:" style="margin-right:50px;">
  21. <el-input
  22. v-model="queryParams.query.labelName"
  23. style="height:30px;"
  24. placeholder="请输入标签"
  25. />
  26. </el-form-item>
  27. </el-form>
  28. <div class="search-button">
  29. <el-button
  30. size="medium"
  31. type="primary"
  32. style="height:36px;width:100px;"
  33. @click="search"
  34. >搜索</el-button
  35. >
  36. <el-button
  37. size="medium"
  38. style="margin-left:20px;height:36px;width:100px;"
  39. @click="refresh"
  40. >重置</el-button
  41. >
  42. </div>
  43. </div>
  44. <div class="add-button">
  45. <el-button
  46. size="medium"
  47. type="primary"
  48. style="height:36px;width:100px;"
  49. @click="handleAdd"
  50. >新建</el-button
  51. >
  52. </div>
  53. <!-- 列表 -->
  54. <div class="content">
  55. <el-table
  56. v-loading="loading"
  57. ref="singleTable"
  58. :data="tableData"
  59. border
  60. style="width: 100%"
  61. >
  62. <el-table-column align="center" type="index" label="序号" width="50" />
  63. <el-table-column align="center" property="title" label="剧本标题" />
  64. <el-table-column align="center" property="studioName" label="工作室" />
  65. <el-table-column align="center" property="labelName" label="标签" />
  66. <el-table-column
  67. align="center"
  68. property="createTime"
  69. label="创建时间"
  70. />
  71. <el-table-column align="center" label="操作">
  72. <template slot-scope="scope">
  73. <el-button type="text" size="mini" @click="handleView(scope.row)"
  74. >查看</el-button
  75. >
  76. <el-button type="text" size="mini" @click="handleEdit(scope.row)"
  77. >编辑</el-button
  78. >
  79. <el-button type="text" size="mini" @click="handleTips(scope.row)"
  80. >Tips维护</el-button
  81. >
  82. <el-button type="text" size="mini" @click="hanDel(scope.row)"
  83. >删除</el-button
  84. >
  85. </template>
  86. </el-table-column>
  87. </el-table>
  88. <pagination
  89. v-show="total > 0"
  90. :total="total"
  91. :page.sync="queryParams.pageNum"
  92. :limit.sync="queryParams.pageSize"
  93. @pagination="queryList"
  94. />
  95. </div>
  96. <!-- 新增表单 -->
  97. <el-dialog :title="dialog.title" :visible.sync="dialog.Visible" width="1000px">
  98. <el-form
  99. ref="ruleForm"
  100. :model="ruleForm"
  101. :rules="rules"
  102. :inline="true"
  103. label-width="100px"
  104. class="demo-ruleForm"
  105. >
  106. <h3 class="form-title">基本信息</h3>
  107. <el-form-item label="剧本标题:" prop="title" style="width:45%">
  108. <el-input v-model="ruleForm.title" style="width:300px;" />
  109. </el-form-item>
  110. <el-form-item label="工作室:" prop="studioName" style="width:45%">
  111. <el-input v-model="ruleForm.studioName" style="width:300px;" />
  112. </el-form-item>
  113. <el-form-item label="标签:" prop="labelName" style="width:100%">
  114. <el-input v-model="ruleForm.labelName" style="width:300px;" />
  115. </el-form-item>
  116. <h3 class="form-title">剧本图片</h3>
  117. <el-form-item label="封面" prop="cover">
  118. <el-upload
  119. class="avatar-uploader"
  120. action
  121. :show-file-list="false"
  122. :auto-upload="false"
  123. :on-change="uploadImg"
  124. :on-success="handleAvatar"
  125. :before-upload="beforeAvatarUpload"
  126. >
  127. <img v-if="ruleForm.cover" :src="ruleForm.cover" class="avatar" />
  128. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  129. </el-upload>
  130. </el-form-item>
  131. <el-form-item label="其它图片" style="width:100%">
  132. <el-upload
  133. action
  134. class="avatar-uploader"
  135. list-type="picture-card"
  136. :auto-upload="false"
  137. :on-change="changeImgs"
  138. :on-success="handleAvatarSuccess"
  139. :before-upload="beforeAvatarUpload"
  140. >
  141. <i class="el-icon-plus" />
  142. </el-upload>
  143. <el-dialog :visible.sync="dialogVisible">
  144. <img width="100%" :src="dialogImageUrl" alt="" />
  145. </el-dialog>
  146. </el-form-item>
  147. <h3 class="form-title">剧本简介</h3>
  148. <el-form-item label="简介" style="width:100%">
  149. <!-- <el-input
  150. v-model="ruleForm.desc"
  151. style="width:500px"
  152. rows="10"
  153. type="textarea"
  154. /> -->
  155. <Tinymce
  156. ref="editor"
  157. v-model="ruleForm.introduction"
  158. :height="400"
  159. :width="700"
  160. />
  161. </el-form-item>
  162. <h3 class="form-title">开本流程</h3>
  163. <el-table
  164. v-if="type != 'view'"
  165. :header-cell-style="{ background: '#eee', color: '#606266' }"
  166. :data="ruleForm.processesList"
  167. border
  168. style="width: 90%;margin-left:30px;"
  169. >
  170. <el-table-column
  171. align="center"
  172. type="index"
  173. label="序号"
  174. width="50"
  175. />
  176. <el-table-column align="center" property="title" label="流程标题">
  177. <template slot-scope="scope">
  178. <el-input v-model="ruleForm.processesList[scope.$index].title" />
  179. </template>
  180. </el-table-column>
  181. <el-table-column align="center" property="code" label="流程编号">
  182. <template slot-scope="scope">
  183. <el-input v-model="ruleForm.processesList[scope.$index].code" />
  184. </template>
  185. </el-table-column>
  186. <el-table-column align="center" property="introduction" label="简介">
  187. <template slot-scope="scope">
  188. <el-input
  189. v-model="ruleForm.processesList[scope.$index].introduction"
  190. />
  191. </template>
  192. </el-table-column>
  193. <el-table-column align="center" property="sort" label="排序">
  194. <template slot-scope="scope">
  195. <el-input v-model="ruleForm.processesList[scope.$index].sort" />
  196. </template>
  197. </el-table-column>
  198. <el-table-column align="center" label="操作">
  199. <template slot-scope="scope">
  200. <el-button type="text" size="mini" @click="Del(scope.$index)"
  201. >删除</el-button
  202. >
  203. </template>
  204. </el-table-column>
  205. </el-table>
  206. <el-table
  207. v-if="type == 'view'"
  208. :header-cell-style="{ background: '#eee', color: '#606266' }"
  209. :data="ruleForm.processesList"
  210. border
  211. style="width: 90%;margin-left:30px;"
  212. >
  213. <el-table-column
  214. align="center"
  215. type="index"
  216. label="序号"
  217. width="50"
  218. />
  219. <el-table-column align="center" property="title" label="流程标题">
  220. </el-table-column>
  221. <el-table-column align="center" property="code" label="流程编号">
  222. </el-table-column>
  223. <el-table-column align="center" property="introduction" label="简介">
  224. </el-table-column>
  225. <el-table-column align="center" property="sort" label="排序">
  226. </el-table-column>
  227. </el-table>
  228. <div style="margin-top:15px;" v-if="type != 'view'">
  229. <el-button
  230. type="success"
  231. style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
  232. @click="handleAddK"
  233. >新增</el-button
  234. >
  235. </div>
  236. <h3 class="form-title">剧本资源</h3>
  237. <el-form-item label="图片" prop="imgUrls" style="width: 100%;">
  238. <el-radio-group v-model="radioImg" @change="changeImg">
  239. <el-radio :label="1">本地上传</el-radio>
  240. <el-radio :label="2">网易云地址</el-radio>
  241. </el-radio-group>
  242. </el-form-item>
  243. <el-form-item v-if="radioImg == 1">
  244. <div v-for="(item, i) in imgData" :key="i" class="imgdata">
  245. <el-image
  246. style="width: 146px; height: 146px"
  247. :src="item.url"
  248. fit="fill"
  249. >
  250. </el-image>
  251. <div class="imgdialog">
  252. <p>
  253. <i
  254. class="el-icon-delete"
  255. @click="deldialogimg(item, i, 'img')"
  256. style="font-size: 20px; padding-left: 30px"
  257. ></i>
  258. </p>
  259. </div>
  260. <div class="sz_container" style="text-align:center">
  261. <span>{{ item.processName }}</span>
  262. </div>
  263. <div class="sz_container" style="text-align:center">
  264. <el-button size="mini" type="text" @click="setLc(item, i, 'img')"
  265. >关联流程</el-button
  266. >
  267. </div>
  268. </div>
  269. <el-upload
  270. v-if="type != 'view'"
  271. class="avatar-uploader"
  272. style="float:left;margin-left:60px"
  273. action
  274. list-type="picture-card"
  275. :show-file-list="false"
  276. :http-request="labeluploadimg"
  277. >
  278. <i class="el-icon-plus"></i>
  279. </el-upload>
  280. <el-dialog :visible.sync="dialogVisible">
  281. <img width="100%" :src="dialogImageUrl" alt="" />
  282. </el-dialog>
  283. </el-form-item>
  284. <el-form-item
  285. v-if="radioImg == 2"
  286. style="width: 100%;"
  287. class="urlTable"
  288. >
  289. <el-table
  290. v-if="type != 'view'"
  291. :data="ruleForm.radioImg"
  292. border
  293. style="width: 80%;margin-left:100px;"
  294. >
  295. <el-table-column
  296. align="center"
  297. type="index"
  298. label="序号"
  299. width="50"
  300. />
  301. <el-table-column align="center" property="date" label="资源标题">
  302. <template slot-scope="scope">
  303. <el-input v-model="ruleForm.radioImg[scope.$index].title" />
  304. </template>
  305. </el-table-column>
  306. <el-table-column align="center" property="url" label="资源URL">
  307. <template slot-scope="scope">
  308. <el-input v-model="ruleForm.radioImg[scope.$index].url" />
  309. </template>
  310. </el-table-column>
  311. <el-table-column
  312. align="center"
  313. property="processId"
  314. label="关联流程"
  315. >
  316. <template slot-scope="scope">
  317. <el-select
  318. v-model="ruleForm.radioImg[scope.$index].processId"
  319. clearable
  320. multiple
  321. @change="changePro('img')"
  322. placeholder="请选择流程"
  323. >
  324. <el-option
  325. v-for="item in ruleForm.processesList"
  326. :key="item.value"
  327. :label="item.title"
  328. :value="item.code"
  329. >
  330. </el-option>
  331. </el-select>
  332. </template>
  333. </el-table-column>
  334. <el-table-column align="center" label="操作">
  335. <template slot-scope="scope">
  336. <el-button type="text" size="mini" @click="DelImg(scope.$index)"
  337. >删除</el-button
  338. >
  339. </template>
  340. </el-table-column>
  341. </el-table>
  342. <el-table
  343. v-if="type == 'view'"
  344. :data="ruleForm.radioImg"
  345. border
  346. style="width: 80%;margin-left:100px;"
  347. >
  348. <el-table-column
  349. align="center"
  350. type="index"
  351. label="序号"
  352. width="50"
  353. />
  354. <el-table-column align="center" property="title" label="资源标题" />
  355. <el-table-column align="center" property="url" label="资源URL" />
  356. <el-table-column
  357. align="center"
  358. property="processId"
  359. label="关联流程"
  360. >
  361. <template slot-scope="scope">
  362. {{ mapForChannel(scope.row.processId) }}
  363. </template>
  364. </el-table-column>
  365. </el-table>
  366. <div style="margin-top:15px;" v-if="type != 'view'">
  367. <el-button
  368. type="success"
  369. style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
  370. @click="handleAddImg"
  371. >新增</el-button
  372. >
  373. </div>
  374. </el-form-item>
  375. <el-form-item label="音频" prop="imgUrls" style="width: 100%;">
  376. <el-radio-group v-model="radioMusic" @change="changeMusic">
  377. <el-radio :label="1">本地上传</el-radio>
  378. <el-radio :label="2">网易云地址</el-radio>
  379. </el-radio-group>
  380. </el-form-item>
  381. <el-form-item v-if="radioMusic == 1">
  382. <div v-for="(item, i) in musicData" :key="i" class="imgdata">
  383. <el-image
  384. style="width: 146px; height: 146px"
  385. :src="item.url"
  386. fit="fill"
  387. >
  388. </el-image>
  389. <div class="imgdialog">
  390. <p>
  391. <i class="el-icon-zoom-in" style="font-size: 20px"></i>
  392. <i
  393. class="el-icon-delete"
  394. @click="deldialogimg(item, i, 'music')"
  395. style="font-size: 20px; padding-left: 30px"
  396. ></i>
  397. </p>
  398. </div>
  399. <div class="sz_container" style="text-align:center">
  400. <span>{{ item.processName }}</span>
  401. </div>
  402. <div class="sz_container" style="text-align:center">
  403. <el-button
  404. size="mini"
  405. type="text"
  406. @click="setLc(item, i, 'music')"
  407. >关联流程</el-button
  408. >
  409. </div>
  410. </div>
  411. <el-upload
  412. v-if="type != 'view'"
  413. class="avatar-uploader"
  414. style="float:left;margin-left:60px"
  415. action
  416. list-type="picture-card"
  417. :show-file-list="false"
  418. :http-request="labeluploadmusic"
  419. >
  420. <i class="el-icon-plus"></i>
  421. </el-upload>
  422. <el-dialog :visible.sync="dialogVisible">
  423. <img width="100%" :src="dialogImageUrl" alt="" />
  424. </el-dialog>
  425. </el-form-item>
  426. <el-form-item
  427. v-if="radioMusic == 2"
  428. style="width: 100%;"
  429. class="urlTable"
  430. >
  431. <el-table
  432. v-if="type != 'view'"
  433. :data="ruleForm.radioMusic"
  434. border
  435. style="width: 80%;margin-left:100px;"
  436. >
  437. <el-table-column
  438. align="center"
  439. type="index"
  440. label="序号"
  441. width="50"
  442. />
  443. <el-table-column align="center" property="title" label="资源标题">
  444. <template slot-scope="scope">
  445. <el-input v-model="ruleForm.radioMusic[scope.$index].title" />
  446. </template>
  447. </el-table-column>
  448. <el-table-column align="center" property="url" label="资源URL">
  449. <template slot-scope="scope">
  450. <el-input v-model="ruleForm.radioMusic[scope.$index].url" />
  451. </template>
  452. </el-table-column>
  453. <el-table-column
  454. align="center"
  455. property="processId"
  456. label="关联流程"
  457. >
  458. <template slot-scope="scope">
  459. <el-select
  460. v-model="ruleForm.radioMusic[scope.$index].processId"
  461. clearable
  462. multiple
  463. @change="changePro('music')"
  464. placeholder="请选择流程"
  465. >
  466. <el-option
  467. v-for="item in ruleForm.processesList"
  468. :key="item.value"
  469. :label="item.title"
  470. :value="item.code"
  471. >
  472. </el-option>
  473. </el-select>
  474. </template>
  475. </el-table-column>
  476. <el-table-column align="center" label="操作">
  477. <template slot-scope="scope">
  478. <el-button
  479. type="text"
  480. size="mini"
  481. @click="DelMusic(scope.$index)"
  482. >删除</el-button
  483. >
  484. </template>
  485. </el-table-column>
  486. </el-table>
  487. <el-table
  488. v-if="type == 'view'"
  489. :data="ruleForm.radioMusic"
  490. border
  491. style="width: 80%;margin-left:100px;"
  492. >
  493. <el-table-column
  494. align="center"
  495. type="index"
  496. label="序号"
  497. width="50"
  498. />
  499. <el-table-column align="center" property="title" label="资源标题" />
  500. <el-table-column align="center" property="url" label="资源URL" />
  501. <el-table-column
  502. align="center"
  503. property="processId"
  504. label="关联流程"
  505. >
  506. <template slot-scope="scope">
  507. {{ mapForChannel(scope.row.processId) }}
  508. </template>
  509. </el-table-column>
  510. </el-table>
  511. <div style="margin-top:15px;" v-if="type != 'view'">
  512. <el-button
  513. type="success"
  514. style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
  515. @click="handleAddMusic"
  516. >新增</el-button
  517. >
  518. </div>
  519. </el-form-item>
  520. <el-form-item label="视频" prop="imgUrls" style="width: 100%;">
  521. <el-radio-group v-model="radioVideo" @change="changeVideo">
  522. <el-radio :label="1">本地上传</el-radio>
  523. <el-radio :label="2">网易云地址</el-radio>
  524. </el-radio-group>
  525. </el-form-item>
  526. <el-form-item v-if="radioVideo == 1">
  527. <div v-for="(item, i) in videoData" :key="i" class="imgdata">
  528. <el-image
  529. style="width: 146px; height: 146px"
  530. :src="item.url"
  531. fit="fill"
  532. >
  533. </el-image>
  534. <div class="imgdialog">
  535. <p>
  536. <i class="el-icon-zoom-in" style="font-size: 20px"></i>
  537. <i
  538. class="el-icon-delete"
  539. @click="deldialogimg(item, i, 'video')"
  540. style="font-size: 20px; padding-left: 30px"
  541. ></i>
  542. </p>
  543. </div>
  544. <div class="sz_container" style="text-align:center">
  545. <span>{{ item.processName }}</span>
  546. </div>
  547. <div class="sz_container" style="text-align:center">
  548. <el-button
  549. size="mini"
  550. type="text"
  551. @click="setLc(item, i, 'video')"
  552. >关联流程</el-button
  553. >
  554. </div>
  555. </div>
  556. <el-upload
  557. v-if="type != 'view'"
  558. class="avatar-uploader"
  559. style="float:left;margin-left:60px"
  560. action
  561. list-type="picture-card"
  562. :show-file-list="false"
  563. :http-request="labeluploadvideo"
  564. >
  565. <i class="el-icon-plus"></i>
  566. </el-upload>
  567. <el-dialog :visible.sync="dialogVisible">
  568. <img width="100%" :src="dialogImageUrl" alt="" />
  569. </el-dialog>
  570. </el-form-item>
  571. <el-form-item
  572. v-if="radioVideo == 2"
  573. style="width: 100%;"
  574. class="urlTable"
  575. >
  576. <el-table
  577. v-if="type != 'view'"
  578. :data="ruleForm.radioVideo"
  579. border
  580. style="width: 80%;margin-left:100px;"
  581. >
  582. <el-table-column
  583. align="center"
  584. type="index"
  585. label="序号"
  586. width="50"
  587. />
  588. <el-table-column align="center" property="title" label="资源标题">
  589. <template slot-scope="scope">
  590. <el-input v-model="ruleForm.radioVideo[scope.$index].title" />
  591. </template>
  592. </el-table-column>
  593. <el-table-column align="center" property="url" label="资源URL">
  594. <template slot-scope="scope">
  595. <el-input v-model="ruleForm.radioVideo[scope.$index].url" />
  596. </template>
  597. </el-table-column>
  598. <el-table-column
  599. align="center"
  600. property="processId"
  601. label="关联流程"
  602. >
  603. <template slot-scope="scope">
  604. <el-select
  605. v-model="ruleForm.radioVideo[scope.$index].processId"
  606. clearable
  607. multiple
  608. @change="changePro('video')"
  609. placeholder="请选择流程"
  610. >
  611. <el-option
  612. v-for="item in ruleForm.processesList"
  613. :key="item.value"
  614. :label="item.title"
  615. :value="item.code"
  616. >
  617. </el-option>
  618. </el-select>
  619. </template>
  620. </el-table-column>
  621. <el-table-column align="center" label="操作">
  622. <template slot-scope="scope">
  623. <el-button
  624. type="text"
  625. size="mini"
  626. @click="DelVideo(scope.$index)"
  627. >删除</el-button
  628. >
  629. </template>
  630. </el-table-column>
  631. </el-table>
  632. <el-table
  633. v-if="type == 'view'"
  634. :data="ruleForm.radioVideo"
  635. border
  636. style="width: 80%;margin-left:100px;"
  637. >
  638. <el-table-column
  639. align="center"
  640. type="index"
  641. label="序号"
  642. width="50"
  643. />
  644. <el-table-column align="center" property="title" label="资源标题" />
  645. <el-table-column align="center" property="url" label="资源URL" />
  646. <el-table-column
  647. align="center"
  648. property="processId"
  649. label="关联流程"
  650. >
  651. <template slot-scope="scope">
  652. {{ mapForChannel(scope.row.processId) }}
  653. </template>
  654. </el-table-column>
  655. </el-table>
  656. <div v-if="type != 'view'" style="margin-top:15px;">
  657. <el-button
  658. type="success"
  659. style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
  660. @click="handleAddVideo"
  661. >新增</el-button
  662. >
  663. </div>
  664. </el-form-item>
  665. <!-- <el-form-item>
  666. <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
  667. <el-button @click="resetForm('ruleForm')">重置</el-button>
  668. </el-form-item> -->
  669. </el-form>
  670. <span slot="footer" class="dialog-footer">
  671. <el-button @click="dialog.Visible = false"> </el-button>
  672. <el-button v-if="type != 'view'" type="primary" @click="subMit"
  673. > </el-button
  674. >
  675. </span>
  676. </el-dialog>
  677. <!-- 关联流程 -->
  678. <el-dialog
  679. title="关联流程"
  680. :visible.sync="process.Visible"
  681. width="30%"
  682. center
  683. >
  684. <el-form>
  685. <el-form-item label="关联流程">
  686. <el-select
  687. v-model="processId"
  688. clearable
  689. multiple
  690. placeholder="请选择流程"
  691. >
  692. <el-option
  693. v-for="item in ruleForm.processesList"
  694. :key="item.value"
  695. :label="item.title"
  696. :value="item.code"
  697. >
  698. </el-option>
  699. </el-select>
  700. </el-form-item>
  701. </el-form>
  702. <span slot="footer" class="dialog-footer">
  703. <el-button @click="process.Visible = false"> </el-button>
  704. <el-button type="primary" @click="subMitLc"> </el-button>
  705. </span>
  706. </el-dialog>
  707. </div>
  708. </template>
  709. <script>
  710. import Tinymce from "@/components/Tinymce";
  711. import {
  712. queryJbInfo,
  713. addJbInfo,
  714. updateJbInfo,
  715. queryJbDetail,
  716. deleteJbInfo,
  717. queryFindList
  718. } from "@/api/sce/sce.js";
  719. import { uploadFile, delFile } from "@/api/upload/upload.js";
  720. const baseUrl = process.env.VUE_APP_BASE_API;
  721. export default {
  722. components: { Tinymce },
  723. data() {
  724. return {
  725. baseUrl,
  726. loading: true,
  727. queryParams: {
  728. pageNum: 1,
  729. pageSize: 15,
  730. query: {
  731. title: undefined,
  732. studioName: undefined,
  733. labelName: undefined
  734. }
  735. },
  736. tableData: [],
  737. rules: {
  738. title: [{ required: true, message: "请输入标题名称", trigger: "blur" }],
  739. labelName: [
  740. { required: true, message: "请输入标签名称", trigger: "blur" }
  741. ],
  742. cover: [{ required: true, message: "请选择封面", trigger: "blur" }]
  743. },
  744. dialog: {
  745. title: "新增剧本",
  746. Visible: false
  747. },
  748. ruleForm: {
  749. processesList: [],
  750. imgUrl: "",
  751. imgUrls: [],
  752. radioImg: [],
  753. radioMusic: [],
  754. radioVideo: [],
  755. resourcesList: []
  756. },
  757. dialogVisible: false,
  758. active: "",
  759. imageUrl: "",
  760. total: 0,
  761. dialogVisible: false,
  762. dialogImageUrl: "",
  763. dataImg: [],
  764. lcData: [],
  765. radioImg: "1",
  766. radioMusic: "1",
  767. radioVideo: "1",
  768. type: "add",
  769. imgData: [],
  770. musicData: [],
  771. videoData: [],
  772. processId: [],
  773. process: {
  774. Visible: false
  775. },
  776. list: {},
  777. typeUrl: "",
  778. imgType: false,
  779. musicType: false,
  780. videoType: false,
  781. imgIndex: "",
  782. musicIdnex: "",
  783. videoIndex: "",
  784. dataList: {}
  785. };
  786. },
  787. mounted() {
  788. this.queryList();
  789. this.queryFindList();
  790. },
  791. methods: {
  792. mapForChannel(e) {
  793. for (var i = 0; i < this.lcData.length; i++) {
  794. if (this.lcData[i].id == e) {
  795. return this.lcData[i].title;
  796. }
  797. }
  798. },
  799. ForChannel(e) {
  800. var a = e.split(",");
  801. var tmp = [];
  802. for (var i = 0; i < this.ruleForm.processesList.length; i++) {
  803. for (var s = 0; s < a.length; s++) {
  804. if (this.ruleForm.processesList[i].code == e[s]) {
  805. tmp.push(this.ruleForm.processesList[i].title);
  806. return tmp;
  807. }
  808. }
  809. }
  810. },
  811. //获取列表
  812. async queryList() {
  813. this.loading = true;
  814. try {
  815. let res = await queryJbInfo(this.queryParams);
  816. console.log(res);
  817. this.tableData = res.data.rows;
  818. this.total = res.data.total;
  819. this.loading = false;
  820. } catch (err) {
  821. console.log(err);
  822. }
  823. },
  824. //搜索
  825. search() {
  826. this.queryList();
  827. },
  828. //重置
  829. refresh() {
  830. this.queryParams = {
  831. pageNum: 1,
  832. pageSize: 15,
  833. query: {
  834. title: undefined,
  835. studioName: undefined,
  836. labelName: undefined
  837. }
  838. };
  839. this.queryList();
  840. },
  841. //跳转Tips维护
  842. handleTips(row) {
  843. this.$router.push({
  844. name: "Tips/index",
  845. query: { scenarioId: row.id, type: "sceinfo" }
  846. });
  847. },
  848. //获取流程
  849. async queryFindList() {
  850. try {
  851. let res = await queryFindList({});
  852. // console.log(res.data, "流程列表");
  853. this.lcData = res.data;
  854. } catch (err) {
  855. console.log(err);
  856. }
  857. },
  858. //获取详情
  859. async queryListDetail(id) {
  860. try {
  861. this.ruleForm = {
  862. studioName: "",
  863. title: "",
  864. labelName: "",
  865. imgUrl: "",
  866. cover: "",
  867. introduction: "",
  868. processesList: [],
  869. imgUrl: "",
  870. radioImg: [],
  871. radioMusic: [],
  872. radioVideo: [],
  873. resourcesList: []
  874. };
  875. let res = await queryJbDetail(id);
  876. console.log(res, "详情");
  877. this.ruleForm = res.data;
  878. res.data.resourcesList.map(n => {
  879. var a = [];
  880. var b = [];
  881. var c = [];
  882. if (n.mediaType == 1 && n.sourceType == 2) {
  883. a.push(n);
  884. this.ruleForm.radioImg = a.map(n => {
  885. return {
  886. mediaType: n.mediaType,
  887. sourceType: n.sourceType,
  888. title: n.title,
  889. url: n.url,
  890. processId: n.processId.split(",")
  891. };
  892. });
  893. this.radioImg = n.sourceType;
  894. } else if (n.mediaType == 1 && n.sourceType == 1) {
  895. a.push(n);
  896. var tmp = []
  897. this.imgData = a
  898. this.radioImg = n.sourceType;
  899. }
  900. if (n.mediaType == 2 && n.sourceType == 1) {
  901. b.push(n);
  902. this.musicData = b;
  903. this.radioMusic = n.sourceType;
  904. } else if (n.mediaType == 2 && n.sourceType == 2) {
  905. console.log("进来了1");
  906. b.push(n);
  907. this.ruleForm.radioMusic = b.map(n => {
  908. return {
  909. mediaType: n.mediaType,
  910. sourceType: n.sourceType,
  911. title: n.title,
  912. url: n.url,
  913. processId: n.processId.split(",")
  914. };
  915. });
  916. this.radioMusic = n.sourceType;
  917. }
  918. if (n.mediaType == 3 && n.sourceType == 1) {
  919. c.push(n);
  920. this.videoData = c;
  921. this.radioVideo = n.sourceType;
  922. } else if (n.mediaType == 3 && n.sourceType == 2) {
  923. c.push(n);
  924. this.ruleForm.radioVideo = c.map(n => {
  925. return {
  926. mediaType: n.mediaType,
  927. sourceType: n.sourceType,
  928. title: n.title,
  929. url: n.url,
  930. processId: n.processId.split(",")
  931. };
  932. });
  933. this.radioVideo = n.sourceType;
  934. }
  935. });
  936. console.log(
  937. this.ruleForm,
  938. this.musicData,
  939. this.imgData,
  940. this.videoData,
  941. "处理后详情"
  942. );
  943. } catch (err) {
  944. console.log(err);
  945. }
  946. },
  947. // 新增
  948. handleAdd() {
  949. this.ruleForm = {
  950. studioName: "",
  951. title: "",
  952. labelName: "",
  953. imgUrl: "",
  954. cover: "",
  955. introduction: "",
  956. processesList: [],
  957. imgUrl: "",
  958. radioImg: [],
  959. radioMusic: [],
  960. radioVideo: [],
  961. resourcesList: []
  962. };
  963. this.imgData = []
  964. this.musicData = []
  965. this.videoData = []
  966. this.radioMusic = 1;
  967. this.radioVideo = 1;
  968. this.radioImg = 1;
  969. this.dialog.Visible = true;
  970. this.type = "add";
  971. this.dialog.title = "新增剧本";
  972. },
  973. async subMit() {
  974. console.log(this.imgType, this.musicType, this.videoType);
  975. console.log(this.radioImg, this.radioMusic, this.radioVideo);
  976. if (this.imgType == true && this.radioImg == 1) {
  977. this.$message({
  978. message: "请绑定图片相关流程",
  979. type: "error"
  980. });
  981. return false;
  982. }
  983. if (this.musicType == true && this.radioMusic == 1) {
  984. this.$message({
  985. message: "请绑定音频相关流程",
  986. type: "error"
  987. });
  988. return false;
  989. }
  990. if (this.videoType == true && this.radioVideo == 1) {
  991. this.$message({
  992. message: "请绑定视频相关流程",
  993. type: "error"
  994. });
  995. return false;
  996. }
  997. this.ruleForm.imgUrl = this.dataImg.join(",");
  998. if (this.radioImg == 1) {
  999. this.ruleForm.radioImg = this.imgData;
  1000. }
  1001. if (this.radioMusic == 1) {
  1002. this.ruleForm.radioMusic = this.musicData;
  1003. }
  1004. if (this.radioVideo == 1) {
  1005. this.ruleForm.radioVideo = this.videoData;
  1006. }
  1007. let data = this.ruleForm.radioImg
  1008. .concat(this.ruleForm.radioMusic)
  1009. .concat(this.ruleForm.radioVideo);
  1010. let list = [];
  1011. data.map(n => {
  1012. if (n.url != "") {
  1013. list.push(n);
  1014. }
  1015. });
  1016. this.ruleForm.resourcesList = list.map(n => {
  1017. return {
  1018. mediaType: n.mediaType,
  1019. sourceType: n.sourceType,
  1020. title: n.title,
  1021. url: n.url,
  1022. processId: n.processId.join(",")
  1023. };
  1024. });
  1025. console.log(this.imgData, "有变化吗");
  1026. console.log(this.ruleForm, "参数");
  1027. try {
  1028. this.$refs["ruleForm"].validate(async valid => {
  1029. if (valid) {
  1030. if (this.type == "add") {
  1031. var res = await addJbInfo(this.ruleForm);
  1032. } else if (this.type == "edit") {
  1033. var res = await updateJbInfo(this.ruleForm);
  1034. }
  1035. if (res.code == 200) {
  1036. this.$message.success("新增成功");
  1037. this.dialog.Visible = false;
  1038. this.queryList();
  1039. } else {
  1040. this.$message({
  1041. message: res.msg,
  1042. type: "error"
  1043. });
  1044. }
  1045. }
  1046. });
  1047. } catch (err) {
  1048. console.log(err);
  1049. }
  1050. },
  1051. dealRdata(attchments, keyname) {
  1052. //attchments:数组,键值
  1053. let list = [...attchments];
  1054. let result = [];
  1055. let obj = {};
  1056. for (let i = 0; i < list.length; i++) {
  1057. if (!obj[list[i][keyname]]) {
  1058. result.push(list[i]);
  1059. obj[list[i].wjDx] = true;
  1060. }
  1061. }
  1062. return result;
  1063. },
  1064. // 编辑
  1065. handleEdit(row) {
  1066. this.queryListDetail(row.id);
  1067. this.dialog.Visible = true;
  1068. this.type = "edit";
  1069. this.dialog.title = "编辑剧本";
  1070. },
  1071. // 查看
  1072. handleView(row) {
  1073. this.queryListDetail(row.id);
  1074. this.type = "view";
  1075. this.dialog.Visible = true;
  1076. },
  1077. // 删除
  1078. async hanDel(row) {
  1079. try {
  1080. await this.$confirm("此操作将永久删除该剧本,是否继续?", "提示", {
  1081. confirmButtonText: "确定",
  1082. cancelButtonText: "取消",
  1083. type: "warning"
  1084. });
  1085. let res = await deleteJbInfo(row.id);
  1086. if (res.code == 200) {
  1087. this.$message.success("删除成功");
  1088. this.queryList();
  1089. } else {
  1090. this.$message({
  1091. message: res.msg,
  1092. type: "error"
  1093. });
  1094. }
  1095. } catch (err) {
  1096. console.log(err);
  1097. }
  1098. },
  1099. handleAvatar(res, file, fileList) {
  1100. console.log(res, file, "整个");
  1101. },
  1102. handleAvatarSuccess(res, file) {
  1103. console.log(res, file, "成功了吗");
  1104. },
  1105. //上传图片
  1106. async uploadImg(file, fileList) {
  1107. try {
  1108. let formData = new FormData();
  1109. let type = file.raw.type;
  1110. formData.append("file", file.raw);
  1111. formData.append("type", type);
  1112. let res = await uploadFile(formData);
  1113. // this.ruleForm.cover = res.data.wjUrl;
  1114. this.$set(this.ruleForm, "cover", res.data.wjUrl);
  1115. console.log(this.ruleForm.cover);
  1116. } catch (err) {
  1117. console.log(err);
  1118. }
  1119. },
  1120. async changeImgs(file, fileList) {
  1121. try {
  1122. let formData = new FormData();
  1123. let type = file.raw.type;
  1124. formData.append("file", file.raw);
  1125. formData.append("type", type);
  1126. let res = await uploadFile(formData);
  1127. console.log(res, 142131);
  1128. this.dataImg.push(res.data.wjUrl);
  1129. } catch (err) {
  1130. console.log(err);
  1131. }
  1132. },
  1133. beforeAvatarUpload(file) {
  1134. console.log(file, 41231);
  1135. const isJPG = file.type;
  1136. const isLt2M = file.size / 1024 / 1024 < 2;
  1137. if (!isLt2M) {
  1138. this.$message.error("上传头像图片大小不能超过 2MB!");
  1139. }
  1140. return isJPG && isLt2M;
  1141. },
  1142. // 开本流程新增
  1143. handleAddK() {
  1144. this.ruleForm.processesList.push({
  1145. title: "",
  1146. code: "",
  1147. introduction: "",
  1148. sort: ""
  1149. });
  1150. },
  1151. // 开本流程删除
  1152. Del(index) {
  1153. this.ruleForm.processesList.splice(index, 1);
  1154. },
  1155. // 图片预览
  1156. dialogimg(e) {
  1157. console.log(e);
  1158. this.dialogVisible = true;
  1159. this.dialogImageUrl = this.ruleForm.imgUrls[e];
  1160. },
  1161. //资源删除
  1162. DelImg(index) {
  1163. this.ruleForm.radioImg.splice(index, 1);
  1164. },
  1165. DelMusic(index) {
  1166. this.ruleForm.radioMusic.splice(index, 1);
  1167. },
  1168. DelVideo(index) {
  1169. this.ruleForm.radioVideo.splice(index, 1);
  1170. },
  1171. // 图片删除
  1172. deldialogimg(index) {
  1173. this.ruleForm.imgUrls.splice(index, 1);
  1174. var img = this.ruleForm.imgUrl[index];
  1175. // proUpdate({ wjUrl: img }).then((res) => {
  1176. // if (res.code == 200) {
  1177. // that.back();
  1178. // }
  1179. // });
  1180. },
  1181. changeImg(val) {
  1182. this.radioImg = val;
  1183. this.ruleForm.radioImg = [];
  1184. this.imgData = [];
  1185. },
  1186. changeMusic(val) {
  1187. this.radioMusic = val;
  1188. this.ruleForm.radioMusic = [];
  1189. this.musicData = [];
  1190. },
  1191. changeVideo(val) {
  1192. this.radioVideo = val;
  1193. this.ruleForm.radioVideo = [];
  1194. this.videoData = [];
  1195. },
  1196. changePro(type) {
  1197. if (type == "img") {
  1198. this.imgType = false;
  1199. } else if (type == "music") {
  1200. this.musicType = false;
  1201. } else if (type == "video") {
  1202. this.videoType = false;
  1203. }
  1204. },
  1205. //新增图片资源
  1206. handleAddImg() {
  1207. this.ruleForm.radioImg.push({
  1208. title: "",
  1209. url: "",
  1210. processId: [],
  1211. mediaType: 1,
  1212. sourceType: this.radioImg
  1213. });
  1214. },
  1215. handleAddMusic() {
  1216. this.ruleForm.radioMusic.push({
  1217. title: "",
  1218. url: "",
  1219. processId: [],
  1220. mediaType: 2,
  1221. sourceType: this.radioMusic
  1222. });
  1223. },
  1224. handleAddVideo() {
  1225. this.ruleForm.radioVideo.push({
  1226. title: "",
  1227. url: "",
  1228. processId: [],
  1229. mediaType: 3,
  1230. sourceType: this.radioVideo
  1231. });
  1232. },
  1233. // 上传资源蹄片
  1234. labeluploadimg({ file }) {
  1235. const formdata = new FormData();
  1236. formdata.append("file", file);
  1237. formdata.append("type", "product");
  1238. uploadFile(formdata).then(res => {
  1239. this.imgData.push({
  1240. url: res.data.wjUrl,
  1241. processName: "",
  1242. title: res.data.wjDx
  1243. });
  1244. this.imgType = true;
  1245. });
  1246. },
  1247. labeluploadmusic({ file }) {
  1248. const formdata = new FormData();
  1249. formdata.append("file", file);
  1250. formdata.append("type", "product");
  1251. uploadFile(formdata).then(res => {
  1252. this.musicData.push({
  1253. url: res.data.wjUrl,
  1254. processName: "",
  1255. title: res.data.wjDx
  1256. });
  1257. this.musicType = true;
  1258. });
  1259. },
  1260. labeluploadvideo({ file }) {
  1261. const formdata = new FormData();
  1262. formdata.append("file", file);
  1263. formdata.append("type", "product");
  1264. uploadFile(formdata).then(res => {
  1265. this.videoData.push({
  1266. url: res.data.wjUrl,
  1267. processName: "",
  1268. title: res.data.wjDx
  1269. });
  1270. this.radioType = true;
  1271. });
  1272. },
  1273. // 图片删除
  1274. deldialogimg(item, index, type) {
  1275. console.log(index, type);
  1276. if (type == "img") {
  1277. this.imgData.splice(index, 1);
  1278. }
  1279. if (type == "music") {
  1280. this.musicData.splice(index, 1);
  1281. }
  1282. if (type == "video") {
  1283. this.videoData.splice(index, 1);
  1284. }
  1285. console.log(item);
  1286. delFile({ wjUrl: item.url }).then(res => {
  1287. if (res.code == 200) {
  1288. this.$message.success("删除成功");
  1289. }
  1290. });
  1291. },
  1292. //关联流程
  1293. setLc(item, i, type) {
  1294. console.log(item, i, this.imgData);
  1295. if (this.ruleForm.processesList.length == 0) {
  1296. this.$message({
  1297. message: "请新建流程",
  1298. type: "error"
  1299. });
  1300. return false;
  1301. }
  1302. if (type == "img") {
  1303. this.imgIndex = i;
  1304. } else if (type == "music") {
  1305. this.musicIndex = i;
  1306. } else if (type == "video") {
  1307. this.videoIndex = i;
  1308. }
  1309. this.list = item;
  1310. this.typeUrl = type;
  1311. this.processId = "";
  1312. this.process.Visible = true;
  1313. },
  1314. subMitLc() {
  1315. this.process.Visible = false;
  1316. if (this.typeUrl == "img") {
  1317. this.imgType = false;
  1318. var tmp = [];
  1319. for (var i = 0; i < this.ruleForm.processesList.length; i++) {
  1320. for (var s = 0; s < this.processId.length; s++) {
  1321. if (this.ruleForm.processesList[i].code == this.processId[s]) {
  1322. tmp.push(this.ruleForm.processesList[i].title);
  1323. }
  1324. }
  1325. }
  1326. this.imgData[this.imgIndex].processName = tmp.join(",");
  1327. this.imgData[this.imgIndex].processId = this.processId;
  1328. this.imgData[this.imgIndex].mediaType = 1;
  1329. this.imgData[this.imgIndex].sourceType = this.radioImg;
  1330. console.log(this.imgData, "处理后img数据");
  1331. }
  1332. if (this.typeUrl == "music") {
  1333. this.musicType = false;
  1334. var tmp = [];
  1335. for (var i = 0; i < this.ruleForm.processesList.length; i++) {
  1336. for (var s = 0; s < this.processId.length; s++) {
  1337. if (this.ruleForm.processesList[i].code == this.processId[s]) {
  1338. tmp.push(this.ruleForm.processesList[i].title);
  1339. }
  1340. }
  1341. }
  1342. this.musicData[this.musicIndex].processName = tmp.join(",");
  1343. this.musicData[this.musicIndex].processId = this.processId;
  1344. this.musicData[this.musicIndex].mediaType = 2;
  1345. this.musicData[this.musicIndex].sourceType = this.radioMusic;
  1346. }
  1347. if (this.typeUrl == "video") {
  1348. this.videoType = false;
  1349. var tmp = [];
  1350. for (var i = 0; i < this.ruleForm.processesList.length; i++) {
  1351. for (var s = 0; s < this.processId.length; s++) {
  1352. if (this.ruleForm.processesList[i].code == this.processId[s]) {
  1353. tmp.push(this.ruleForm.processesList[i].title);
  1354. }
  1355. }
  1356. }
  1357. this.videoData[this.videoIndex].processName = tmp.join(",");
  1358. this.videoData[this.videoIndex].processId = this.processId;
  1359. this.videoData[this.videoIndex].mediaType = 3;
  1360. this.videoData[this.videoIndex].sourceType = this.radioVideo;
  1361. }
  1362. }
  1363. }
  1364. };
  1365. </script>
  1366. <style scoped>
  1367. .content {
  1368. background: #fff;
  1369. margin-top: 15px;
  1370. }
  1371. .add-button {
  1372. margin-top: 15px;
  1373. }
  1374. /deep/ .el-input__inner {
  1375. height: 30px;
  1376. }
  1377. .search-button {
  1378. display: flex;
  1379. }
  1380. .form-title {
  1381. margin-left: 30px;
  1382. padding-bottom: 10px;
  1383. border-bottom: 1px solid #000;
  1384. }
  1385. /deep/ .avatar-uploader .el-upload {
  1386. border: 1px dashed #000;
  1387. border-radius: 6px;
  1388. cursor: pointer;
  1389. position: relative;
  1390. overflow: hidden;
  1391. }
  1392. /deep/ .avatar-uploader .el-upload:hover {
  1393. border-color: #409eff;
  1394. }
  1395. .avatar-uploader-icon {
  1396. font-size: 28px;
  1397. color: #8c939d;
  1398. width: 178px;
  1399. height: 178px;
  1400. line-height: 178px;
  1401. text-align: center;
  1402. }
  1403. .avatar {
  1404. width: 178px;
  1405. height: 178px;
  1406. display: block;
  1407. }
  1408. .urlTable /deep/ .el-form-item__content {
  1409. width: 100%;
  1410. }
  1411. </style>
  1412. <style lang="scss" scope>
  1413. .imgdata {
  1414. position: relative;
  1415. // display: inline-block;
  1416. float: left;
  1417. margin-left: 60px;
  1418. .imgdialog {
  1419. width: 146px;
  1420. height: 146px;
  1421. display: none;
  1422. position: absolute;
  1423. background: rgba(127, 127, 127, 0.5);
  1424. top: 0;
  1425. left: 0;
  1426. justify-content: space-between;
  1427. align-content: center;
  1428. p {
  1429. margin: auto;
  1430. i {
  1431. cursor: pointer;
  1432. color: white;
  1433. }
  1434. }
  1435. }
  1436. }
  1437. .imgdata:hover .imgdialog {
  1438. display: flex !important;
  1439. }
  1440. </style>