detailsPage.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. <template>
  2. <div class="borderless">
  3. <div class="customer-head">
  4. <div class="customer-back">
  5. <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
  6. @click="backToList">返回列表
  7. </el-button>
  8. </div>
  9. <el-button
  10. class="el-button--small-yh add-customer-btn"
  11. type="primary"
  12. :disabled="disabled"
  13. size="small"
  14. @click="editCustomer"
  15. >{{ form.id ? '确认修改' : '确认新增' }}
  16. </el-button>
  17. </div>
  18. <basic-container style="margin-top: 60px">
  19. <avue-form
  20. ref="form"
  21. style="margin-bottom: -20px"
  22. v-model="form"
  23. :option="option">
  24. </avue-form>
  25. </basic-container>
  26. <containerTitle title="基础资料"></containerTitle>
  27. <basic-container>
  28. <div style="display: flex;justify-content: space-between;margin-bottom: 10px">
  29. <div>
  30. <el-button type="primary" @click="dataList.push({})" size="small">新增</el-button>
  31. </div>
  32. <div>
  33. <el-button icon="el-icon-s-operation" size="small" circle @click="drawer=true"></el-button>
  34. </div>
  35. </div>
  36. <!--抽屉自定义列-->
  37. <el-drawer
  38. title="自定义列设置(加项录入正数、减项录入负数)"
  39. :visible.sync="drawer"
  40. append-to-body
  41. withHeader
  42. size="60%"
  43. :with-header="false">
  44. <el-table
  45. :data="optionList.column"
  46. border
  47. ref="table"
  48. size="mini"
  49. :height="tableHeight"
  50. style="width: 100%;">
  51. <!-- <el-table-column-->
  52. <!-- type="index"-->
  53. <!-- align="center"-->
  54. <!-- label="序号"-->
  55. <!-- width="50">-->
  56. <!-- </el-table-column>-->
  57. <el-table-column
  58. prop="label"
  59. align="center"
  60. label="列名"
  61. width="200">
  62. <template slot-scope="scope">
  63. <el-input v-model="scope.row.label" size="mini" placeholder="请输入内容"></el-input>
  64. </template>
  65. </el-table-column>
  66. <el-table-column
  67. prop="fixed"
  68. align="center"
  69. label="冻结"
  70. width="50">
  71. <template slot-scope="scope">
  72. <el-checkbox v-model="scope.row.fixed"></el-checkbox>
  73. </template>
  74. </el-table-column>
  75. <el-table-column
  76. prop="hide"
  77. align="center"
  78. label="隐藏"
  79. width="50">
  80. <template slot-scope="scope">
  81. <el-checkbox v-model="scope.row.hide"></el-checkbox>
  82. </template>
  83. </el-table-column>
  84. <el-table-column
  85. prop="width"
  86. align="center"
  87. label="宽度"
  88. width="400">
  89. <template slot-scope="scope">
  90. <el-slider :min="1" :max="500" show-input v-model="scope.row.width"></el-slider>
  91. </template>
  92. </el-table-column>
  93. <el-table-column
  94. prop="remarks"
  95. align="center"
  96. label="备注"
  97. width="200">
  98. <template slot-scope="scope">
  99. <el-input v-model="scope.row.remarks" size="mini" placeholder="请输入内容"></el-input>
  100. </template>
  101. </el-table-column>
  102. </el-table>
  103. </el-drawer>
  104. <el-table
  105. :data="dataList"
  106. border
  107. size="small"
  108. :header-cell-style="bug"
  109. style="width: 100%;"
  110. >
  111. <el-table-column
  112. type="index"
  113. align="center"
  114. label="序号"
  115. width="50">
  116. </el-table-column>
  117. <el-table-column
  118. v-for="item in optionList.column"
  119. :prop="item.prop"
  120. align="center"
  121. v-if="item.hide != true"
  122. :fixed="item.fixed"
  123. :label="item.label"
  124. :width="item.width>2?item.width:100">
  125. <template slot-scope="scope">
  126. <el-input v-model="scope.row[item.prop]" size="small" :placeholder="'请输入'+item.label"></el-input>
  127. </template>
  128. </el-table-column>
  129. </el-table>
  130. </basic-container>
  131. </div>
  132. </template>
  133. <script>
  134. import {typeSave} from "@/api/maintenance/salesPolicy";
  135. export default {
  136. name: "detailsPage",
  137. data(){
  138. return{
  139. disabled:false,
  140. form:{},
  141. dataList:[],
  142. drawer:false,
  143. tableHeight:0,
  144. option:{
  145. menuBtn: false,
  146. labelWidth: 100,
  147. column:[
  148. {
  149. label:'年',
  150. prop:'name',
  151. type:'year',
  152. search:true,
  153. span: 4,
  154. maxlength: 3,
  155. },
  156. {
  157. label:'月',
  158. prop:'name1',
  159. type:'month',
  160. search:true,
  161. span: 4,
  162. maxlength: 3,
  163. },
  164. {
  165. label:'备注',
  166. prop:'name1',
  167. search:true,
  168. span: 16,
  169. maxlength: 3,
  170. }]
  171. },
  172. optionList:{
  173. addBtn:false,
  174. addRowBtn:true,
  175. cellBtn:true,
  176. border: true,
  177. "lazy": true,
  178. "tip": false,
  179. "simplePage": true,
  180. "searchShow": true,
  181. "align": "center",
  182. index: true,
  183. column:[
  184. {
  185. label:'部门',
  186. prop:'nameA',
  187. slot: true,
  188. width:100,
  189. },
  190. {
  191. label:'姓名',
  192. prop:'nameB',
  193. slot:true,
  194. width:100
  195. },
  196. {
  197. label:'工资拨付标准',
  198. prop:'nameC',
  199. width:100,
  200. cell: true,
  201. },
  202. {
  203. label:'职级拨付标准',
  204. prop:'name4',
  205. cell: true,
  206. },
  207. {
  208. label:'履约奖',
  209. prop:'name5',
  210. cell: true,
  211. },
  212. {
  213. label:'校龄工资',
  214. prop:'name6',
  215. cell: true,
  216. remarks:'基础工资'
  217. },
  218. {
  219. label:'增资',
  220. prop:'name7',
  221. cell: true,
  222. remarks:'基础工资'
  223. },
  224. {
  225. label:'学历工资',
  226. prop:'name8',
  227. cell: true,
  228. remarks:'基础工资'
  229. },
  230. {
  231. label:'职级工资',
  232. prop:'name9',
  233. cell: true,
  234. remarks:'基础工资'
  235. },
  236. {
  237. label:'工资基数',
  238. prop:'name10',
  239. cell: true,
  240. remarks:'基础工资'
  241. },
  242. {
  243. label:'基础工资',
  244. prop:'name11',
  245. cell: true,
  246. remarks:'基础工资'
  247. },
  248. {
  249. label:'工作量工资',
  250. prop:'name12',
  251. cell: true,
  252. remarks:'工作量工资'
  253. },
  254. {
  255. label:'日常考核工资',
  256. prop:'name13',
  257. cell: true,
  258. remarks:'日常考核工资'
  259. },
  260. {
  261. label:'绩效工资',
  262. prop:'name',
  263. cell: true,
  264. remarks:'绩效工资'
  265. },
  266. {
  267. label:'突出贡献奖',
  268. prop:'name14',
  269. cell: true,
  270. remarks:'奖励工资'
  271. },
  272. {
  273. label:'教学成绩优胜奖',
  274. prop:'name15',
  275. cell: true,
  276. remarks:'奖励工资'
  277. },
  278. {
  279. label:'教学成绩进步奖',
  280. prop:'name16',
  281. cell: true,
  282. remarks:'奖励工资'
  283. },
  284. {
  285. label:'荣誉奖',
  286. prop:'name17',
  287. cell: true,
  288. remarks:'奖励工资'
  289. },
  290. {
  291. label:'领导干部奖励',
  292. prop:'name18',
  293. cell: true,
  294. remarks:'奖励工资'
  295. },
  296. {
  297. label:'奖励工资',
  298. prop:'name',
  299. cell: true,
  300. remarks:'奖励工资'
  301. },
  302. {
  303. label:'领导干部补贴',
  304. prop:'name',
  305. cell: true,
  306. remarks:'职务津贴'
  307. },
  308. {
  309. label:'教研组长',
  310. prop:'name',
  311. cell: true,
  312. remarks:'职务津贴'
  313. },
  314. {
  315. label:'备课组长',
  316. prop:'name',
  317. cell: true,
  318. remarks:'职务津贴'
  319. },
  320. {
  321. label:'职务津贴',
  322. prop:'name',
  323. cell: true,
  324. remarks:'职务津贴'
  325. },
  326. {
  327. label:'班主任',
  328. prop:'name',
  329. cell: true,
  330. remarks:'其他补贴'
  331. },
  332. {
  333. label:'班额',
  334. prop:'name',
  335. cell: true,
  336. remarks:'其他补贴'
  337. },
  338. {
  339. label:'其他补贴',
  340. prop:'name',
  341. cell: true,
  342. remarks:'其他补贴'
  343. },
  344. {
  345. label:'微信补贴',
  346. prop:'name',
  347. cell: true,
  348. remarks:'补贴项'
  349. },
  350. {
  351. label:'特长班补贴',
  352. prop:'name',
  353. cell: true,
  354. remarks:'补贴项'
  355. },
  356. {
  357. label:'空中课堂补贴',
  358. prop:'name',
  359. cell: true,
  360. remarks:'补贴项'
  361. },
  362. {
  363. label:'补发项',
  364. prop:'name',
  365. cell: true,
  366. remarks:'补贴项'
  367. },
  368. {
  369. label:'产假工资',
  370. prop:'name',
  371. cell: true,
  372. remarks:'补贴项'
  373. },
  374. {
  375. label:'绩效工资',
  376. prop:'name',
  377. cell: true,
  378. remarks:'补贴项'
  379. },
  380. {
  381. label:'补贴项',
  382. prop:'name',
  383. cell: true,
  384. remarks:'补贴项'
  385. },
  386. {
  387. label:'考勤扣除',
  388. prop:'name',
  389. cell: true,
  390. remarks:'扣除项'
  391. },
  392. {
  393. label:'罚款',
  394. prop:'name',
  395. cell: true,
  396. remarks:'扣除项'
  397. },
  398. {
  399. label:'五险个人扣除',
  400. prop:'name',
  401. cell: true,
  402. remarks:'扣除项'
  403. },
  404. {
  405. label:'宿舍管理费扣除',
  406. prop:'name',
  407. cell: true,
  408. remarks:'扣除项'
  409. },
  410. {
  411. label:'团意险',
  412. prop:'name',
  413. cell: true,
  414. remarks:'扣除项'
  415. },
  416. {
  417. label:'扣除项',
  418. prop:'name',
  419. cell: true,
  420. remarks:'扣除项'
  421. },
  422. {
  423. label:'保险单位部分',
  424. prop:'name',
  425. cell: true,
  426. remarks:'保险单位部分'
  427. },
  428. {
  429. label:'保险个人部分',
  430. prop:'name',
  431. cell: true,
  432. remarks:'保险个人部分'
  433. },
  434. {
  435. label:'公积金单位部分',
  436. prop:'name',
  437. cell: true,
  438. remarks:'公积金单位部分'
  439. },
  440. {
  441. label:'公积金个人部分',
  442. prop:'name',
  443. cell: true,
  444. remarks:'公积金个人部分'
  445. },
  446. {
  447. label:'应发工资',
  448. prop:'name',
  449. cell: true,
  450. remarks:'应发工资'
  451. },
  452. {
  453. label:'个人所得税',
  454. prop:'name',
  455. cell: true,
  456. remarks:'个人所得税'
  457. },
  458. {
  459. label:'实发工资',
  460. prop:'name',
  461. cell: true,
  462. remarks:'实发工资'
  463. },
  464. {
  465. label:'其他信息',
  466. prop:'name',
  467. cell: true,
  468. remarks:'其他信息'
  469. }
  470. ]
  471. },
  472. }
  473. },
  474. created() {
  475. let windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
  476. console.log(windowHeight)
  477. this.tableHeight = windowHeight - 140;
  478. },
  479. methods:{
  480. //修改提交触发
  481. editCustomer() {
  482. console.log(this.form)
  483. this.$refs["form"].validate((valid) => {
  484. if (valid) {
  485. this.form.corps = this.form.corps.join(',')
  486. this.form.specialItemList = this.contactsData
  487. this.form.presentItemList = this.contactsDataBuyFree
  488. typeSave(this.form).then(res=>{
  489. this.$message({
  490. type: "success",
  491. message: this.form.id ? "修改成功!" : "新增成功!"
  492. });
  493. this.backToList()
  494. })
  495. } else {
  496. return false;
  497. }
  498. });
  499. },
  500. //新增
  501. rowSave(form, done) {
  502. this.$message.success(
  503. '新增数据' + JSON.stringify(form)
  504. )
  505. done()
  506. },
  507. //返回列表
  508. backToList() {
  509. this.$emit("goBack");
  510. // this.$router.$avueRouter.closeTag();
  511. // this.$router.push({
  512. // path: '/maintenance/salesPolicy/index',
  513. // query: {}
  514. // });
  515. },
  516. }
  517. }
  518. </script>
  519. <style scoped>
  520. ::v-deep .el-drawer.rtl{
  521. overflow: scroll;
  522. }
  523. ::v-deep .el-table .el-table__fixed {
  524. height: auto !important;
  525. bottom: 8px !important;
  526. }
  527. </style>