salarySet.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652
  1. <template>
  2. <div class="salarySet">
  3. <!-- <h4>单次课次参考时长:30min</h4> -->
  4. <div class="tableList">
  5. <div class="left">
  6. <el-table :data="teamTable"
  7. :header-cell-style="{background:'#EDEEF0',color:'#444'}">
  8. <el-table-column label="乐团课课酬课时结算">
  9. <template slot-scope="scope">{{ scope.row.courseScheduleType | coursesType }}</template>
  10. </el-table-column>
  11. <el-table-column label="默认课酬-主教">
  12. <template slot-scope="scope">
  13. <el-input type="number"
  14. @mousewheel.native.prevent
  15. v-model.trim="scope.row.mainTeacher30MinSalary"
  16. placeholder="请输入课酬">
  17. <template slot="append"
  18. v-if="scope.row.courseScheduleType == 'HIGH'">元/人</template>
  19. <template slot="append"
  20. v-else-if="scope.row.courseScheduleType == 'CLASSROOM'">元/40分钟</template>
  21. <template slot="append"
  22. v-else>元/30分钟</template>
  23. </el-input>
  24. </template>
  25. </el-table-column>
  26. <el-table-column label="默认课酬-助教">
  27. <template slot-scope="scope">
  28. <el-input type="number"
  29. @mousewheel.native.prevent
  30. v-model.trim="scope.row.assistantTeacher30MinSalary"
  31. placeholder="请输入课酬">
  32. <template slot="append"
  33. v-if="scope.row.courseScheduleType == 'HIGH'">元/人</template>
  34. <template slot="append"
  35. v-else-if="scope.row.courseScheduleType == 'CLASSROOM'">元/40分钟</template>
  36. <template slot="append"
  37. v-else>元/30分钟</template>
  38. </el-input>
  39. </template>
  40. </el-table-column>
  41. <el-table-column label="3.0课酬-主教">
  42. <template slot-scope="scope">
  43. <el-input type="number"
  44. @mousewheel.native.prevent
  45. :disabled="scope.row.courseScheduleType == 'CLASSROOM'"
  46. v-model.trim="scope.row.mainTeacher90MinSalary"
  47. placeholder="请输入课酬">
  48. <template slot="append"
  49. v-if="scope.row.courseScheduleType == 'HIGH'">元/人</template>
  50. <template slot="append"
  51. v-else-if="scope.row.courseScheduleType == 'CLASSROOM'">元/40分钟</template>
  52. <template slot="append"
  53. v-else>元/90分钟</template>
  54. <!-- <template slot="append">元/{{ (scope.row.courseScheduleType == 'HIGH' || scope.row.courseScheduleType == 'CLASSROOM') ? 45 : 90 }}分钟</template> -->
  55. </el-input>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="3.0课酬-助教">
  59. <template slot-scope="scope">
  60. <el-input type="number"
  61. @mousewheel.native.prevent
  62. :disabled="scope.row.courseScheduleType == 'CLASSROOM'"
  63. v-model.trim="scope.row.assistantTeacher90MinSalary"
  64. placeholder="请输入课酬">
  65. <template slot="append"
  66. v-if="scope.row.courseScheduleType == 'HIGH'">元/人</template>
  67. <template slot="append"
  68. v-else-if="scope.row.courseScheduleType == 'CLASSROOM'">元/40分钟</template>
  69. <template slot="append"
  70. v-else>元/90分钟</template>
  71. <!-- <template slot="append">元/{{ (scope.row.courseScheduleType == 'HIGH' || scope.row.courseScheduleType == 'CLASSROOM') ? 45 : 90 }}分钟</template> -->
  72. </el-input>
  73. </template>
  74. </el-table-column>
  75. </el-table>
  76. <el-table :data="teamSmallTable"
  77. style=" margin-top: 15px;"
  78. :header-cell-style="{background:'#EDEEF0',color:'#444'}">
  79. <el-table-column label="">
  80. <template slot-scope="scope">{{ scope.row.courseScheduleType | coursesType }}</template>
  81. </el-table-column>
  82. <el-table-column label="1V1">
  83. <template slot-scope="scope">
  84. <el-input type="number"
  85. @mousewheel.native.prevent
  86. v-model.trim="scope.row.v1"
  87. placeholder="请输入课酬">
  88. <template slot="append">元/节</template>
  89. </el-input>
  90. </template>
  91. </el-table-column>
  92. <el-table-column label="1V2">
  93. <template slot-scope="scope">
  94. <el-input type="number"
  95. @mousewheel.native.prevent
  96. v-model.trim="scope.row.v2"
  97. placeholder="请输入课酬">
  98. <template slot="append">元/节</template>
  99. </el-input>
  100. </template>
  101. </el-table-column>
  102. <el-table-column label="1V3">
  103. <template slot-scope="scope">
  104. <el-input type="number"
  105. @mousewheel.native.prevent
  106. v-model.trim="scope.row.v3"
  107. placeholder="请输入课酬">
  108. <template slot="append">元/节</template>
  109. </el-input>
  110. </template>
  111. </el-table-column>
  112. <el-table-column label="1V4">
  113. <template slot-scope="scope">
  114. <el-input type="number"
  115. @mousewheel.native.prevent
  116. v-model.trim="scope.row.v4"
  117. placeholder="请输入课酬">
  118. <template slot="append">元/节</template>
  119. </el-input>
  120. </template>
  121. </el-table-column>
  122. <el-table-column label="1V5">
  123. <template slot-scope="scope">
  124. <el-input type="number"
  125. @mousewheel.native.prevent
  126. v-model.trim="scope.row.v5"
  127. placeholder="请输入课酬">
  128. <template slot="append">元/节</template>
  129. </el-input>
  130. </template>
  131. </el-table-column>
  132. </el-table>
  133. <el-table :data="vipTable"
  134. style="width: 70%; margin-top: 15px;"
  135. :header-cell-style="{background:'#EDEEF0',color:'#444'}">
  136. <el-table-column label="VIP课课酬参考值"
  137. prop="vipGroupCategoryName"></el-table-column>
  138. <!-- <el-table-column label="线上课">
  139. <template slot-scope="scope">
  140. <el-input
  141. type="number"
  142. @mousewheel.native.prevent
  143. v-model.trim="scope.row.onlineClassesSalary"
  144. placeholder="请输入内容"
  145. >
  146. <template slot="append">元/45分钟</template>
  147. </el-input>
  148. </template>
  149. </el-table-column> -->
  150. <el-table-column label="">
  151. <template slot-scope="scope">
  152. <div>
  153. <el-input type="number"
  154. @mousewheel.native.prevent
  155. v-model.trim="scope.row.offlineClassesSalary"
  156. placeholder="请输入内容">
  157. <template slot="append"> 元/人</template>
  158. <!-- <template slot="append" v-else>节/人</template> v-if="scope.row.musicTheory" -->
  159. </el-input>
  160. </div>
  161. </template>
  162. </el-table-column>
  163. </el-table>
  164. <el-table :data="accompanyTable"
  165. style="width: 35%; margin-top: 15px;"
  166. :header-cell-style="{background:'#EDEEF0',color:'#444'}">
  167. <el-table-column label="网管课">
  168. <template slot-scope="scope">
  169. <el-input type="number"
  170. style="width:195px"
  171. @mousewheel.native.prevent
  172. v-model.trim="scope.row.mainTeacherSalary">
  173. <template slot="append">元/{{scope.row.minutes}}分钟</template>
  174. </el-input>
  175. </template>
  176. </el-table-column>
  177. </el-table>
  178. <el-form style="margin-top: 20px;">
  179. <el-form-item required label="生效日期">
  180. <el-date-picker v-model.trim="startDate"
  181. type="date"
  182. value-format="yyyy-MM-dd"
  183. :picker-options="pickerOptions"
  184. placeholder="选择日期"></el-date-picker>
  185. <div style="display: inline; color: red; padding-left: 10px;">说明:本次调整只对生效日期之后(包含当天)且未结算的课程生效;</div>
  186. </el-form-item>
  187. </el-form>
  188. <!-- v-permission="pageType == 'create' ? {child: 'teacherDefaultMusicGroupSalary/batchUpset', parent: 'teacherAdd/batchUpset'} : {child: 'teacherDefaultMusicGroupSalary/batchUpset', parent: 'teacherUpdate/batchUpset'}" -->
  189. <div style="padding-top: 10px;">
  190. <auth :auths="pageType == 'create' ? ['/teacherOperationAdd', 'teacherDefaultCreateSave'] : ['/teacherOperationUpdate', 'teacherDefaultUpdateSave']" mulit>
  191. <el-button @click="onSave()" type="primary">保存</el-button>
  192. </auth>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. </template>
  198. <script>
  199. import {
  200. vipGroupSalaryList,
  201. vipGroupSalarySet,
  202. teacherSalaryList,
  203. teacherSalaryBatchUpset,
  204. teacherDefaultPracticeGroupSalary,
  205. PracticeGroupSalaryUpdate
  206. } from "@/api/teacherManager";
  207. import { sysConfigList } from "@/api/generalSettings";
  208. import { findTeacherDefaultSalary } from "@/api/vipSeting";
  209. let nowTime = new Date();
  210. let checkTime =
  211. nowTime.getFullYear() +
  212. "-" +
  213. (nowTime.getMonth() + 1) +
  214. "-" +
  215. nowTime.getDate();
  216. export default {
  217. props: ["teacherId"],
  218. name: "salarySet",
  219. data () {
  220. return {
  221. pageType: this.$route.query.type, // 页面类型
  222. // teacherId: this.teacherId ? this.teacherId : this.$route.query.teacherId,
  223. teamTable: [
  224. {
  225. assistantTeacher30MinSalary: 0,
  226. assistantTeacher90MinSalary: 0,
  227. courseScheduleType: "SINGLE",
  228. mainTeacher30MinSalary: 0,
  229. mainTeacher90MinSalary: 0,
  230. userId: this.teacherId
  231. },
  232. {
  233. assistantTeacher30MinSalary: 0,
  234. assistantTeacher90MinSalary: 0,
  235. courseScheduleType: "MIX",
  236. mainTeacher30MinSalary: 0,
  237. mainTeacher90MinSalary: 0,
  238. userId: this.teacherId
  239. },
  240. {
  241. assistantTeacher30MinSalary: 0,
  242. assistantTeacher90MinSalary: 0,
  243. courseScheduleType: "COMPREHENSIVE",
  244. mainTeacher30MinSalary: 0,
  245. mainTeacher90MinSalary: 0,
  246. userId: this.teacherId
  247. },
  248. {
  249. assistantTeacher30MinSalary: 0,
  250. assistantTeacher90MinSalary: 0,
  251. courseScheduleType: "TRAINING_SINGLE",
  252. mainTeacher30MinSalary: 0,
  253. mainTeacher90MinSalary: 0,
  254. userId: this.teacherId
  255. },
  256. {
  257. assistantTeacher30MinSalary: 0,
  258. assistantTeacher90MinSalary: 0,
  259. courseScheduleType: "TRAINING_MIX",
  260. mainTeacher30MinSalary: 0,
  261. mainTeacher90MinSalary: 0,
  262. userId: this.teacherId
  263. },
  264. {
  265. assistantTeacher30MinSalary: 0,
  266. assistantTeacher90MinSalary: 0,
  267. courseScheduleType: "HIGH",
  268. mainTeacher30MinSalary: 0,
  269. mainTeacher90MinSalary: 0,
  270. userId: this.teacherId
  271. },
  272. {
  273. assistantTeacher30MinSalary: 0,
  274. assistantTeacher90MinSalary: 0,
  275. courseScheduleType: "CLASSROOM",
  276. mainTeacher30MinSalary: 0,
  277. mainTeacher90MinSalary: 0,
  278. userId: this.teacherId
  279. }
  280. ],
  281. // salaryRuleJson: { 3: 0, 4: 0, 5: 0 },
  282. // userId: this.teacherId
  283. teamSmallTable: [
  284. {
  285. courseScheduleType: "HIGH_ONLINE",
  286. // salaryRuleJson: { 3: 0, 4: 0, 5: 0 },
  287. v1: 0,
  288. v2: 0,
  289. v3: 0,
  290. v4: 0,
  291. v5: 0,
  292. assistantTeacher30MinSalary: 0,
  293. assistantTeacher90MinSalary: 0,
  294. mainTeacher30MinSalary: 0,
  295. mainTeacher90MinSalary: 0,
  296. userId: this.teacherId
  297. },
  298. {
  299. courseScheduleType: "MUSIC_NETWORK",
  300. // salaryRuleJson: { 3: 0, 4: 0, 5: 0 },
  301. v1: 0,
  302. v2: 0,
  303. v3: 0,
  304. v4: 0,
  305. v5: 0,
  306. assistantTeacher30MinSalary: 0,
  307. assistantTeacher90MinSalary: 0,
  308. mainTeacher30MinSalary: 0,
  309. mainTeacher90MinSalary: 0,
  310. userId: this.teacherId
  311. }
  312. ],
  313. vipTable: [],
  314. musicGroupTable: [],
  315. ruleList: [],
  316. vipList: [],
  317. startDate: null,
  318. accompanyTable: [
  319. {
  320. assistantTeacherSalary: 30,
  321. minutes: 25,
  322. userId: this.teacherId,
  323. mainTeacherSalary: 0
  324. }
  325. ],
  326. pickerOptions: {
  327. disabledDate (time) {
  328. return time.getTime() > Date.now();
  329. },
  330. firstDayOfWeek: 1
  331. }
  332. };
  333. },
  334. created () { },
  335. mounted () {
  336. // this.pageType = this.$route.query.type;
  337. this.__init();
  338. },
  339. // activated () {
  340. // this.pageType = this.$route.query.type;
  341. // this.__init();
  342. // },
  343. methods: {
  344. __init () {
  345. if (this.$route.query.search) {
  346. this.Fsearch = this.$route.query.search;
  347. }
  348. if (this.$route.query.rules) {
  349. this.Frules = this.$route.query.rules;
  350. }
  351. // 获取课程形态 设置vip课酬
  352. findTeacherDefaultSalary({ userId: this.teacherId }).then(res => {
  353. if (res.code == 200 && res.data.length > 0) {
  354. let vipData = [];
  355. res.data.forEach(item => {
  356. vipData.push({
  357. offlineClassesSalary: null,
  358. onlineClassesSalary: null,
  359. vipGroupCategoryId: item.id,
  360. vipGroupCategoryName: item.name,
  361. userId: this.teacherId,
  362. musicTheory:item.musicTheory
  363. });
  364. });
  365. // VIP课列表
  366. vipGroupSalaryList({
  367. rows: 9999,
  368. page: 1,
  369. search: this.teacherId
  370. }).then(res => {
  371. if (res.code == 200) {
  372. let rows = res.data.rows;
  373. this.vipListCompare(vipData, rows);
  374. }
  375. });
  376. }
  377. });
  378. // 乐团
  379. teacherSalaryList({
  380. rows: 9999,
  381. page: 1,
  382. teacherId: this.teacherId
  383. // settlementType: 'FIXED_SALARY'
  384. }).then(res => {
  385. if (res.code == 200) {
  386. // this.teamTable = res.data.rows
  387. let rows = res.data.rows;
  388. this.teacherSalaryMoney(rows);
  389. }
  390. });
  391. // 网管课
  392. teacherDefaultPracticeGroupSalary({ teacherId: this.teacherId }).then(
  393. res => {
  394. if (res.code == 200 && res.data.length > 0) {
  395. this.accompanyTable = res.data;
  396. }
  397. }
  398. );
  399. },
  400. vipListCompare (vipData, rows) {
  401. // vip 做对比
  402. if (!rows) {
  403. // 判断是否有数据
  404. this.vipTable = vipData;
  405. return;
  406. }
  407. let result = [];
  408. vipData.forEach(item => {
  409. rows.forEach(c => {
  410. if (item.vipGroupCategoryId == c.vipGroupCategoryId) {
  411. item.checked = true;
  412. result.push({
  413. vipGroupCategoryId: c.vipGroupCategoryId,
  414. offlineClassesSalary: c.offlineClassesSalary,
  415. onlineClassesSalary: c.onlineClassesSalary,
  416. vipGroupCategoryName: c.vipGroupCategoryName,
  417. userId: c.userId,
  418. musicTheory:c.musicTheory
  419. });
  420. }
  421. });
  422. });
  423. if (result.length > 0) {
  424. vipData.forEach(item => {
  425. if (!item.checked) {
  426. result.push(item);
  427. }
  428. });
  429. } else {
  430. result = vipData;
  431. }
  432. this.vipTable = result;
  433. },
  434. teacherSalaryMoney (rows) {
  435. // 判断是否有数据
  436. if (!rows || rows.length <= 0) return;
  437. let teamTable = this.teamTable;
  438. let result = [];
  439. teamTable.forEach(item => {
  440. rows.forEach(c => {
  441. if (item.courseScheduleType == c.courseScheduleType) {
  442. item.checked = true;
  443. result.push({
  444. mainTeacher30MinSalary: c.mainTeacher30MinSalary,
  445. mainTeacher90MinSalary: c.mainTeacher90MinSalary,
  446. assistantTeacher30MinSalary: c.assistantTeacher30MinSalary,
  447. assistantTeacher90MinSalary: c.assistantTeacher90MinSalary,
  448. courseScheduleType: c.courseScheduleType,
  449. userId: this.teacherId
  450. });
  451. }
  452. });
  453. });
  454. if (result.length > 0) {
  455. teamTable.forEach(item => {
  456. if (!item.checked) {
  457. result.push(item);
  458. }
  459. });
  460. } else {
  461. result = teamTable;
  462. }
  463. this.teamTable = result;
  464. let smallResult = []
  465. let teamSmallTable = this.teamSmallTable
  466. teamSmallTable.forEach(item => {
  467. rows.forEach(c => {
  468. if (item.courseScheduleType == c.courseScheduleType) {
  469. item.checked = true;
  470. let tempJson = c.salaryRuleJson ? JSON.parse(c.salaryRuleJson) : { 1: 0, 2: 0, 3: 0, 4: 0, 5: 0 }
  471. // console.log(tempJson)
  472. smallResult.push({
  473. mainTeacher30MinSalary: c.mainTeacher30MinSalary,
  474. mainTeacher90MinSalary: c.mainTeacher90MinSalary,
  475. assistantTeacher30MinSalary: c.assistantTeacher30MinSalary,
  476. assistantTeacher90MinSalary: c.assistantTeacher90MinSalary,
  477. salaryRuleJson: tempJson,
  478. v1: tempJson[1] ? tempJson[1] : 0,
  479. v2: tempJson[2] ? tempJson[2] : 0,
  480. v3: tempJson[3] ? tempJson[3] : 0,
  481. v4: tempJson[4] ? tempJson[4] : 0,
  482. v5: tempJson[5] ? tempJson[5] : 0,
  483. courseScheduleType: c.courseScheduleType,
  484. userId: this.teacherId
  485. });
  486. }
  487. });
  488. })
  489. if (smallResult.length > 0) {
  490. teamSmallTable.forEach(item => {
  491. if (!item.checked) {
  492. smallResult.push(item);
  493. }
  494. });
  495. } else {
  496. smallResult = teamSmallTable;
  497. }
  498. this.teamSmallTable = smallResult;
  499. },
  500. onSave () {
  501. let teamTable = this.teamTable;
  502. let checkStatus = true;
  503. teamTable.forEach(item => {
  504. if (
  505. item.assistantTeacher30MinSalary < 0 ||
  506. item.assistantTeacher90MinSalary < 0 ||
  507. item.mainTeacher30MinSalary < 0 ||
  508. item.mainTeacher90MinSalary < 0
  509. ) {
  510. this.$message.error("输入课酬不能为负数");
  511. checkStatus = false;
  512. return;
  513. }
  514. });
  515. let temps = []
  516. this.teamSmallTable.forEach(item => {
  517. if (item.v1 < 0 || item.v2 < 0 || item.v3 < 0 || item.v4 < 0 || item.v5 < 0) {
  518. this.$message.error("输入课酬不能为负数");
  519. checkStatus = false;
  520. return;
  521. }
  522. temps.push({
  523. courseScheduleType: item.courseScheduleType,
  524. salaryRuleJson: JSON.stringify({ 1: Number(item.v1), 2: Number(item.v2), 3: Number(item.v3), 4: Number(item.v4), 5: Number(item.v5) }),
  525. assistantTeacher30MinSalary: 0,
  526. assistantTeacher90MinSalary: 0,
  527. mainTeacher30MinSalary: 0,
  528. mainTeacher90MinSalary: 0,
  529. userId: item.userId
  530. })
  531. })
  532. this.vipTable.forEach(item => {
  533. // console.log(item)
  534. if (item.offlineClassesSalary < 0 || item.onlineClassesSalary < 0) {
  535. this.$message.error("输入课酬不能为负数");
  536. checkStatus = false;
  537. return;
  538. }
  539. });
  540. this.accompanyTable.forEach(item => {
  541. if (item.mainTeacherSalary < 0) {
  542. this.$message.error("输入课酬不能为负数");
  543. checkStatus = false;
  544. return;
  545. }
  546. if (!item.mainTeacherSalary.toString()) {
  547. this.$message.error("输入网管课课酬");
  548. checkStatus = false;
  549. return;
  550. }
  551. });
  552. // 判断输入的值是否正确
  553. if (!this.startDate) {
  554. this.$message.error("请填写生效日期");
  555. return;
  556. }
  557. if (!checkStatus) {
  558. return
  559. }
  560. this.$confirm("您确定更改老师课酬", "提示", {
  561. confirmButtonText: "确定",
  562. cancelButtonText: "取消",
  563. type: "warning"
  564. })
  565. .then(() => {
  566. let params = teamTable.concat(temps)
  567. teacherSalaryBatchUpset({
  568. teacherDefaultMusicGroupSalaries: params,
  569. startDate: this.startDate
  570. }).then(res => {
  571. if (res.code == 200) {
  572. // 判断输入的值是否正确
  573. vipGroupSalarySet({
  574. teacherDefaultVipGroupSalaries: this.vipTable,
  575. startDate: this.startDate
  576. }).then(res => {
  577. if (res.code == 200) {
  578. PracticeGroupSalaryUpdate({
  579. startDate: this.startDate,
  580. teacherDefaultPracticeGroupSalaries: this.accompanyTable
  581. }).then(res => {
  582. if (res.code == 200) {
  583. this.$message.success("保存成功");
  584. this.$store.dispatch('delVisitedViews', this.$route)
  585. this.$router.push({
  586. path: "/teacherManager/teacherList",
  587. query: { rules: this.Frules, search: this.Fsearch }
  588. });
  589. }
  590. });
  591. }
  592. });
  593. }
  594. });
  595. })
  596. .catch(() => { });
  597. }
  598. }
  599. };
  600. </script>
  601. <style lang="scss" scoped>
  602. .salarySet {
  603. h3 {
  604. margin-top: 10px;
  605. margin-bottom: 10px;
  606. font-size: 14px;
  607. color: #444;
  608. font-weight: normal;
  609. }
  610. .tableList {
  611. .left,
  612. .right {
  613. float: left;
  614. }
  615. .left {
  616. width: 100%;
  617. }
  618. .right {
  619. width: 56%;
  620. margin-left: 2%;
  621. }
  622. }
  623. }
  624. /deep/.el-table__body {
  625. tr {
  626. td:nth-child(3) {
  627. border-right: 1px solid #ebeef5;
  628. }
  629. }
  630. }
  631. /deep/.el-input-group__append {
  632. min-width: 103px;
  633. background-color: #f5f7fa;
  634. text-align: center;
  635. color: #909399;
  636. vertical-align: middle;
  637. display: table-cell;
  638. position: relative;
  639. border: 1px solid #dcdfe6;
  640. border-left: 0;
  641. }
  642. </style>