detailsPage.vue 81 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449
  1. <template>
  2. <div class="borderless" v-loading="allloading">
  3. <div class="customer-head">
  4. <div class="customer-back">
  5. <el-button
  6. type="danger"
  7. style="border: none;background: none;color: red"
  8. icon="el-icon-arrow-left"
  9. @click="backToList"
  10. >返回列表
  11. </el-button>
  12. </div>
  13. <div class="add-customer-btn">
  14. <el-button
  15. type="primary"
  16. size="small"
  17. v-if="detailData.status == 1"
  18. class="el-button--small-yh "
  19. :disabled="form.status > 0"
  20. @click.stop="openEdit"
  21. >编辑
  22. </el-button>
  23. <el-dropdown style="margin-right: 8px;margin-left: 8px;">
  24. <el-button type="primary" size="small" :disabled="loadingBtn">
  25. 审核处理<i class="el-icon-arrow-down el-icon--right"></i>
  26. </el-button>
  27. <el-dropdown-menu slot="dropdown">
  28. <el-dropdown-item
  29. :disabled="form.status > 0"
  30. @click.native="pleaseCheck"
  31. >请核数据</el-dropdown-item
  32. >
  33. <el-dropdown-item disabled>审核进度</el-dropdown-item>
  34. <el-dropdown-item disabled>撤销请核</el-dropdown-item>
  35. </el-dropdown-menu>
  36. </el-dropdown>
  37. <el-button
  38. type="success"
  39. :disabled="loadingBtn || !form.id"
  40. size="small"
  41. @click="copyDoc"
  42. >
  43. 复制新单
  44. </el-button>
  45. <el-button
  46. class="el-button--small-yh"
  47. type="primary"
  48. :disabled="loadingBtn || detailData.status == 1"
  49. size="small"
  50. @click="editCustomer"
  51. >保存数据
  52. </el-button>
  53. </div>
  54. </div>
  55. <div class="customer-main" v-loading="loadingBtn">
  56. <containerTitle title="基础资料"></containerTitle>
  57. <basic-container>
  58. <avue-form
  59. class="trading-form"
  60. ref="form"
  61. v-model="form"
  62. :option="option"
  63. />
  64. </basic-container>
  65. <containerTitle title="基础明细"></containerTitle>
  66. <basic-container>
  67. <avue-crud
  68. ref="crud"
  69. v-model="crudForm"
  70. :option="optionList"
  71. :data="dataList"
  72. :page.sync="page"
  73. :search.sync="search"
  74. :table-loading="loading"
  75. @current-change="currentChange"
  76. @size-change="sizeChange"
  77. @search-change="searchChange"
  78. @saveColumn="saveColumn"
  79. @resetColumn="resetColumn"
  80. @refresh-change="refreshChange"
  81. @row-save="rowSave"
  82. @row-update="rowUpdate"
  83. :cell-style="cellStyle"
  84. :header-cell-class-name="headerCellClassName"
  85. class="primarySchoolClass"
  86. >
  87. <template slot="menuLeft">
  88. <el-button
  89. type="primary"
  90. @click.stop="$refs.crud.rowAdd()"
  91. size="small"
  92. :disabled="detailData.status == 1"
  93. >新增</el-button
  94. >
  95. <el-button
  96. type="primary"
  97. size="small"
  98. @click="importExcel()"
  99. :disabled="detailData.status == 1"
  100. >导入
  101. </el-button>
  102. <el-button type="primary" size="small" @click.stop="openExport()"
  103. >导出
  104. </el-button>
  105. <!-- <el-button
  106. type="primary"
  107. size="small"
  108. @click.stop="calculate()"
  109. :disabled="detailData.status == 1"
  110. >重新计算
  111. </el-button> -->
  112. <el-button
  113. type="primary"
  114. size="small"
  115. @click.stop="calculate2()"
  116. :disabled="detailData.status == 1"
  117. >导入职工信息
  118. </el-button>
  119. <el-button
  120. type="info"
  121. icon="el-icon-printer"
  122. size="small"
  123. :disabled="!form.id"
  124. @click.stop="openReport()"
  125. >报表打印</el-button
  126. >
  127. </template>
  128. <template slot="basicsSalaryLabel">
  129. <el-tag>基础工资:</el-tag>
  130. </template>
  131. <template slot="workloadSalaryLabel">
  132. <el-tag>工作量工资:</el-tag>
  133. </template>
  134. <template slot="dailyAssessmentSalaryLabel">
  135. <el-tag>日常考核工资:</el-tag>
  136. </template>
  137. <template slot="awardSalaryLabel">
  138. <el-tag>奖励工资:</el-tag>
  139. </template>
  140. <template slot="dutyAllowancesLabel">
  141. <el-tag>职务津贴:</el-tag>
  142. </template>
  143. <template slot="classTeacherSubsidyLabel">
  144. <el-tag>班主任津贴:</el-tag>
  145. </template>
  146. <template slot="subsidyLabel">
  147. <el-tag>补贴项:</el-tag>
  148. </template>
  149. <template slot="deductionsLabel">
  150. <el-tag>扣除项:</el-tag>
  151. </template>
  152. <template slot="salaryLabel">
  153. <el-tag>应发工资:</el-tag>
  154. </template>
  155. <template slot="fsalaryLabel">
  156. <el-tag>实发工资:</el-tag>
  157. </template>
  158. <!-- 1. 基础工资 = +M153(校龄工资)+N153(增资)+O153(学历工资)+Q153(职级工资)+L153(履约奖)+R153(工资基数) -->
  159. <template
  160. slot="schoolAgeSalaryForm"
  161. slot-scope="{ column, disabled }"
  162. >
  163. <el-input
  164. :disabled="disabled"
  165. :placeholder="'请输入 ' + column.label"
  166. v-model="crudForm.schoolAgeSalary"
  167. @change="salaryAdd(crudForm)"
  168. />
  169. </template>
  170. <template
  171. slot="capitalIncreaseForm"
  172. slot-scope="{ column, disabled }"
  173. >
  174. <el-input
  175. :disabled="disabled"
  176. :placeholder="'请输入 ' + column.label"
  177. v-model="crudForm.capitalIncrease"
  178. @change="salaryAdd(crudForm)"
  179. />
  180. </template>
  181. <template
  182. slot="educationSalaryForm"
  183. slot-scope="{ column, disabled }"
  184. >
  185. <el-input
  186. :disabled="disabled"
  187. :placeholder="'请输入 ' + column.label"
  188. v-model="crudForm.educationSalary"
  189. @change="salaryAdd(crudForm)"
  190. />
  191. </template>
  192. <template slot="rankSalaryForm" slot-scope="{ column, disabled }">
  193. <el-input
  194. :disabled="disabled"
  195. :placeholder="'请输入 ' + column.label"
  196. v-model="crudForm.rankSalary"
  197. @change="salaryAdd(crudForm)"
  198. />
  199. </template>
  200. <template
  201. slot="performanceAwardForm"
  202. slot-scope="{ column, disabled }"
  203. >
  204. <el-input
  205. :disabled="disabled"
  206. :placeholder="'请输入 ' + column.label"
  207. v-model="crudForm.performanceAward"
  208. @change="salaryAdd(crudForm)"
  209. />
  210. </template>
  211. <template slot="salaryBaseForm" slot-scope="{ column, disabled }">
  212. <el-input
  213. :disabled="disabled"
  214. :placeholder="'请输入 ' + column.label"
  215. v-model="crudForm.salaryBase"
  216. @change="salaryAdd(crudForm)"
  217. />
  218. </template>
  219. <!-- //2. 工作量工资 = 月份工作量工资+代课工作量工资+双休日工作量工资+工作量工资1+…+工作量工资5 -->
  220. <template
  221. slot="momthWorkloadSalaryForm"
  222. slot-scope="{ column, disabled }"
  223. >
  224. <el-input
  225. :disabled="disabled"
  226. :placeholder="'请输入 ' + column.label"
  227. v-model="crudForm.momthWorkloadSalary"
  228. @change="salaryAdd(crudForm)"
  229. />
  230. </template>
  231. <template slot="customTwoForm" slot-scope="{ column, disabled }">
  232. <el-input
  233. :disabled="disabled"
  234. :placeholder="'请输入 ' + column.label"
  235. v-model="crudForm.customTwo"
  236. @change="salaryAdd(crudForm)"
  237. />
  238. </template>
  239. <template slot="doubleMoneyForm" slot-scope="{ column, disabled }">
  240. <el-input
  241. :disabled="disabled"
  242. :placeholder="'请输入 ' + column.label"
  243. v-model="crudForm.doubleMoney"
  244. @change="salaryAdd(crudForm)"
  245. />
  246. </template>
  247. <template slot="customThreeForm" slot-scope="{ column, disabled }">
  248. <el-input
  249. :disabled="disabled"
  250. :placeholder="'请输入 ' + column.label"
  251. v-model="crudForm.customThree"
  252. @change="salaryAdd(crudForm)"
  253. />
  254. </template>
  255. <template slot="customFourForm" slot-scope="{ column, disabled }">
  256. <el-input
  257. :disabled="disabled"
  258. :placeholder="'请输入 ' + column.label"
  259. v-model="crudForm.customFour"
  260. @change="salaryAdd(crudForm)"
  261. />
  262. </template>
  263. <template slot="customFiveForm" slot-scope="{ column, disabled }">
  264. <el-input
  265. :disabled="disabled"
  266. :placeholder="'请输入 ' + column.label"
  267. v-model="crudForm.customFive"
  268. @change="salaryAdd(crudForm)"
  269. />
  270. </template>
  271. <template slot="customSixForm" slot-scope="{ column, disabled }">
  272. <el-input
  273. :disabled="disabled"
  274. :placeholder="'请输入 ' + column.label"
  275. v-model="crudForm.customSix"
  276. @change="salaryAdd(crudForm)"
  277. />
  278. </template>
  279. <template slot="customSevenForm" slot-scope="{ column, disabled }">
  280. <el-input
  281. :disabled="disabled"
  282. :placeholder="'请输入 ' + column.label"
  283. v-model="crudForm.customSeven"
  284. @change="salaryAdd(crudForm)"
  285. />
  286. </template>
  287. <template
  288. slot="virtualDailyAssessmentCriteriaForm"
  289. slot-scope="{ column, disabled }"
  290. >
  291. <el-input
  292. :disabled="disabled"
  293. :placeholder="'请输入 ' + column.label"
  294. v-model="crudForm.virtualDailyAssessmentCriteria"
  295. @change="salaryAdd(crudForm)"
  296. />
  297. </template>
  298. <template
  299. slot="virtualDoubleCeaseForm"
  300. slot-scope="{ column, disabled }"
  301. >
  302. <el-input
  303. :disabled="disabled"
  304. :placeholder="'请输入 ' + column.label"
  305. v-model="crudForm.virtualDoubleCease"
  306. @change="salaryAdd(crudForm)"
  307. />
  308. </template>
  309. <!-- //3.日常考核工资 =日常考核工资-虚拟日常考核标准 -->
  310. <template
  311. slot="dailyAssessmentSalaryForm"
  312. slot-scope="{ column, disabled }"
  313. >
  314. <el-input
  315. :disabled="disabled"
  316. :placeholder="'请输入 ' + column.label"
  317. v-model="crudForm.dailyAssessmentSalary"
  318. @change="salaryAdd(crudForm)"
  319. />
  320. </template>
  321. <template
  322. slot="virtualDailyAssessmentCriteriaForm"
  323. slot-scope="{ column, disabled }"
  324. >
  325. <el-input
  326. :disabled="disabled"
  327. :placeholder="'请输入 ' + column.label"
  328. v-model="crudForm.virtualDailyAssessmentCriteria"
  329. @change="salaryAdd(crudForm)"
  330. />
  331. </template>
  332. <!-- 4.绩效工资=学期绩效工资+学期绩效工资1+..+学期绩效工资5 -->
  333. <template
  334. slot="termPerformanceSalaryForm"
  335. slot-scope="{ column, disabled }"
  336. >
  337. <el-input
  338. :disabled="disabled"
  339. :placeholder="'请输入 ' + column.label"
  340. v-model="crudForm.termPerformanceSalary"
  341. @change="salaryAdd(crudForm)"
  342. />
  343. </template>
  344. <template slot="customNineForm" slot-scope="{ column, disabled }">
  345. <el-input
  346. :disabled="disabled"
  347. :placeholder="'请输入 ' + column.label"
  348. v-model="crudForm.customNine"
  349. @change="salaryAdd(crudForm)"
  350. />
  351. </template>
  352. <template slot="customizeForm" slot-scope="{ column, disabled }">
  353. <el-input
  354. :disabled="disabled"
  355. :placeholder="'请输入 ' + column.label"
  356. v-model="crudForm.customize"
  357. @change="salaryAdd(crudForm)"
  358. />
  359. </template>
  360. <template slot="customizeOneForm" slot-scope="{ column, disabled }">
  361. <el-input
  362. :disabled="disabled"
  363. :placeholder="'请输入 ' + column.label"
  364. v-model="crudForm.customizeOne"
  365. @change="salaryAdd(crudForm)"
  366. />
  367. </template>
  368. <template slot="customizeTwoForm" slot-scope="{ column, disabled }">
  369. <el-input
  370. :disabled="disabled"
  371. :placeholder="'请输入 ' + column.label"
  372. v-model="crudForm.customizeTwo"
  373. @change="salaryAdd(crudForm)"
  374. />
  375. </template>
  376. <template slot="customizeThreeForm" slot-scope="{ column, disabled }">
  377. <el-input
  378. :disabled="disabled"
  379. :placeholder="'请输入 ' + column.label"
  380. v-model="crudForm.customizeThree"
  381. @change="salaryAdd(crudForm)"
  382. />
  383. </template>
  384. <!-- 5.奖励工资=奖励1+…+奖励10 -->
  385. <template slot="customAwardForm" slot-scope="{ column, disabled }">
  386. <el-input
  387. :disabled="disabled"
  388. :placeholder="'请输入 ' + column.label"
  389. v-model="crudForm.customAward"
  390. @change="salaryAdd(crudForm)"
  391. />
  392. </template>
  393. <template slot="customAwardOneForm" slot-scope="{ column, disabled }">
  394. <el-input
  395. :disabled="disabled"
  396. :placeholder="'请输入 ' + column.label"
  397. v-model="crudForm.customAwardOne"
  398. @change="salaryAdd(crudForm)"
  399. />
  400. </template>
  401. <template slot="customAwardTwoForm" slot-scope="{ column, disabled }">
  402. <el-input
  403. :disabled="disabled"
  404. :placeholder="'请输入 ' + column.label"
  405. v-model="crudForm.customAwardTwo"
  406. @change="salaryAdd(crudForm)"
  407. />
  408. </template>
  409. <template
  410. slot="customAwardThreeForm"
  411. slot-scope="{ column, disabled }"
  412. >
  413. <el-input
  414. :disabled="disabled"
  415. :placeholder="'请输入 ' + column.label"
  416. v-model="crudForm.customAwardThree"
  417. @change="salaryAdd(crudForm)"
  418. />
  419. </template>
  420. <template
  421. slot="customAwardFourForm"
  422. slot-scope="{ column, disabled }"
  423. >
  424. <el-input
  425. :disabled="disabled"
  426. :placeholder="'请输入 ' + column.label"
  427. v-model="crudForm.customAwardFour"
  428. @change="salaryAdd(crudForm)"
  429. />
  430. </template>
  431. <template
  432. slot="customAwardFiveForm"
  433. slot-scope="{ column, disabled }"
  434. >
  435. <el-input
  436. :disabled="disabled"
  437. :placeholder="'请输入 ' + column.label"
  438. v-model="crudForm.customAwardFive"
  439. @change="salaryAdd(crudForm)"
  440. />
  441. </template>
  442. <template slot="customAwardSixForm" slot-scope="{ column, disabled }">
  443. <el-input
  444. :disabled="disabled"
  445. :placeholder="'请输入 ' + column.label"
  446. v-model="crudForm.customAwardSix"
  447. @change="salaryAdd(crudForm)"
  448. />
  449. </template>
  450. <template
  451. slot="customAwardSevenForm"
  452. slot-scope="{ column, disabled }"
  453. >
  454. <el-input
  455. :disabled="disabled"
  456. :placeholder="'请输入 ' + column.label"
  457. v-model="crudForm.customAwardSeven"
  458. @change="salaryAdd(crudForm)"
  459. />
  460. </template>
  461. <template
  462. slot="customAwardEightForm"
  463. slot-scope="{ column, disabled }"
  464. >
  465. <el-input
  466. :disabled="disabled"
  467. :placeholder="'请输入 ' + column.label"
  468. v-model="crudForm.customAwardEight"
  469. @change="salaryAdd(crudForm)"
  470. />
  471. </template>
  472. <template
  473. slot="customAwardNineForm"
  474. slot-scope="{ column, disabled }"
  475. >
  476. <el-input
  477. :disabled="disabled"
  478. :placeholder="'请输入 ' + column.label"
  479. v-model="crudForm.customAwardNine"
  480. @change="salaryAdd(crudForm)"
  481. />
  482. </template>
  483. <!-- 6.职务津贴=领导干部补贴+领导干部考核补贴+备课组长+备课组长考核补贴+教研组长+教研组长考核补贴 -->
  484. <template
  485. slot="leadingCadreSubsidyForm"
  486. slot-scope="{ column, disabled }"
  487. >
  488. <el-input
  489. :disabled="disabled"
  490. :placeholder="'请输入 ' + column.label"
  491. v-model="crudForm.leadingCadreSubsidy"
  492. @change="salaryAdd(crudForm)"
  493. />
  494. </template>
  495. <template slot="customizeFiveForm" slot-scope="{ column, disabled }">
  496. <el-input
  497. :disabled="disabled"
  498. :placeholder="'请输入 ' + column.label"
  499. v-model="crudForm.customizeFive"
  500. @change="salaryAdd(crudForm)"
  501. />
  502. </template>
  503. <template slot="prepareLessonsForm" slot-scope="{ column, disabled }">
  504. <el-input
  505. :disabled="disabled"
  506. :placeholder="'请输入 ' + column.label"
  507. v-model="crudForm.prepareLessons"
  508. @change="salaryAdd(crudForm)"
  509. />
  510. </template>
  511. <template slot="customizeSixForm" slot-scope="{ column, disabled }">
  512. <el-input
  513. :disabled="disabled"
  514. :placeholder="'请输入 ' + column.label"
  515. v-model="crudForm.customizeSix"
  516. @change="salaryAdd(crudForm)"
  517. />
  518. </template>
  519. <template
  520. slot="teachingResearchForm"
  521. slot-scope="{ column, disabled }"
  522. >
  523. <el-input
  524. :disabled="disabled"
  525. :placeholder="'请输入 ' + column.label"
  526. v-model="crudForm.teachingResearch"
  527. @change="salaryAdd(crudForm)"
  528. />
  529. </template>
  530. <template slot="customizeSevenForm" slot-scope="{ column, disabled }">
  531. <el-input
  532. :disabled="disabled"
  533. :placeholder="'请输入 ' + column.label"
  534. v-model="crudForm.customizeSeven"
  535. @change="salaryAdd(crudForm)"
  536. />
  537. </template>
  538. <!-- 7.班主任津贴=班主任补贴+班额津贴-校车考核-班级微信群考核-财务考核+班主任考核津贴 -->
  539. <template
  540. slot="classTeacherFeeForm"
  541. slot-scope="{ column, disabled }"
  542. >
  543. <el-input
  544. :disabled="disabled"
  545. :placeholder="'请输入 ' + column.label"
  546. v-model="crudForm.classTeacherFee"
  547. @change="salaryAdd(crudForm)"
  548. />
  549. </template>
  550. <template slot="classesForm" slot-scope="{ column, disabled }">
  551. <el-input
  552. :disabled="disabled"
  553. :placeholder="'请输入 ' + column.label"
  554. v-model="crudForm.classes"
  555. @change="salaryAdd(crudForm)"
  556. />
  557. </template>
  558. <template
  559. slot="adjustTheBalanceForm"
  560. slot-scope="{ column, disabled }"
  561. >
  562. <el-input
  563. :disabled="disabled"
  564. :placeholder="'请输入 ' + column.label"
  565. v-model="crudForm.adjustTheBalance"
  566. @change="salaryAdd(crudForm)"
  567. />
  568. </template>
  569. <template slot="payrollCreditForm" slot-scope="{ column, disabled }">
  570. <el-input
  571. :disabled="disabled"
  572. :placeholder="'请输入 ' + column.label"
  573. v-model="crudForm.payrollCredit"
  574. @change="salaryAdd(crudForm)"
  575. />
  576. </template>
  577. <template slot="paidForm" slot-scope="{ column, disabled }">
  578. <el-input
  579. :disabled="disabled"
  580. :placeholder="'请输入 ' + column.label"
  581. v-model="crudForm.paid"
  582. @change="salaryAdd(crudForm)"
  583. />
  584. </template>
  585. <template slot="customizeEightForm" slot-scope="{ column, disabled }">
  586. <el-input
  587. :disabled="disabled"
  588. :placeholder="'请输入 ' + column.label"
  589. v-model="crudForm.customizeEight"
  590. @change="salaryAdd(crudForm)"
  591. />
  592. </template>
  593. <!-- 8.补贴项=微信+产假工资+周末工作量工资+补贴1+…+补贴10 -->
  594. <template slot="wxForm" slot-scope="{ column, disabled }">
  595. <el-input
  596. :disabled="disabled"
  597. :placeholder="'请输入 ' + column.label"
  598. v-model="crudForm.wx"
  599. @change="salaryAdd(crudForm)"
  600. />
  601. </template>
  602. <template
  603. slot="maternityLeaveSalaryForm"
  604. slot-scope="{ column, disabled }"
  605. >
  606. <el-input
  607. :disabled="disabled"
  608. :placeholder="'请输入 ' + column.label"
  609. v-model="crudForm.maternityLeaveSalary"
  610. @change="salaryAdd(crudForm)"
  611. />
  612. </template>
  613. <template
  614. slot="overtimeAtWeekendForm"
  615. slot-scope="{ column, disabled }"
  616. >
  617. <el-input
  618. :disabled="disabled"
  619. :placeholder="'请输入 ' + column.label"
  620. v-model="crudForm.overtimeAtWeekend"
  621. @change="salaryAdd(crudForm)"
  622. />
  623. </template>
  624. <template
  625. slot="yearUpPerformanceForm"
  626. slot-scope="{ column, disabled }"
  627. >
  628. <el-input
  629. :disabled="disabled"
  630. :placeholder="'请输入 ' + column.label"
  631. v-model="crudForm.yearUpPerformance"
  632. @change="salaryAdd(crudForm)"
  633. />
  634. </template>
  635. <template
  636. slot="yearDownPerformanceForm"
  637. slot-scope="{ column, disabled }"
  638. >
  639. <el-input
  640. :disabled="disabled"
  641. :placeholder="'请输入 ' + column.label"
  642. v-model="crudForm.yearDownPerformance"
  643. @change="salaryAdd(crudForm)"
  644. />
  645. </template>
  646. <template
  647. slot="cadreAllowanceReservationForm"
  648. slot-scope="{ column, disabled }"
  649. >
  650. <el-input
  651. :disabled="disabled"
  652. :placeholder="'请输入 ' + column.label"
  653. v-model="crudForm.cadreAllowanceReservation"
  654. @change="salaryAdd(crudForm)"
  655. />
  656. </template>
  657. <template
  658. slot="vacationOvertimePayForm"
  659. slot-scope="{ column, disabled }"
  660. >
  661. <el-input
  662. :disabled="disabled"
  663. :placeholder="'请输入 ' + column.label"
  664. v-model="crudForm.vacationOvertimePay"
  665. @change="salaryAdd(crudForm)"
  666. />
  667. </template>
  668. <template slot="newPostTrainForm" slot-scope="{ column, disabled }">
  669. <el-input
  670. :disabled="disabled"
  671. :placeholder="'请输入 ' + column.label"
  672. v-model="crudForm.newPostTrain"
  673. @change="salaryAdd(crudForm)"
  674. />
  675. </template>
  676. <template slot="winningPrizeForm" slot-scope="{ column, disabled }">
  677. <el-input
  678. :disabled="disabled"
  679. :placeholder="'请输入 ' + column.label"
  680. v-model="crudForm.winningPrize"
  681. @change="salaryAdd(crudForm)"
  682. />
  683. </template>
  684. <template slot="classMinisterForm" slot-scope="{ column, disabled }">
  685. <el-input
  686. :disabled="disabled"
  687. :placeholder="'请输入 ' + column.label"
  688. v-model="crudForm.classMinister"
  689. @change="salaryAdd(crudForm)"
  690. />
  691. </template>
  692. <template
  693. slot="monthViceClassFeeForm"
  694. slot-scope="{ column, disabled }"
  695. >
  696. <el-input
  697. :disabled="disabled"
  698. :placeholder="'请输入 ' + column.label"
  699. v-model="crudForm.monthViceClassFee"
  700. @change="salaryAdd(crudForm)"
  701. />
  702. </template>
  703. <template slot="safetyFeesForm" slot-scope="{ column, disabled }">
  704. <el-input
  705. :disabled="disabled"
  706. :placeholder="'请输入 ' + column.label"
  707. v-model="crudForm.safetyFees"
  708. @change="salaryAdd(crudForm)"
  709. />
  710. </template>
  711. <template
  712. slot="reserveReplacementForm"
  713. slot-scope="{ column, disabled }"
  714. >
  715. <el-input
  716. :disabled="disabled"
  717. :placeholder="'请输入 ' + column.label"
  718. v-model="crudForm.reserveReplacement"
  719. @change="salaryAdd(crudForm)"
  720. />
  721. </template>
  722. <!-- 9.扣除项=出勤+督查+超额电话费+学习强国+宿舍管理费+生育津贴+扣除1+…+扣除10 -->
  723. <template slot="attendanceForm" slot-scope="{ column, disabled }">
  724. <el-input
  725. :disabled="disabled"
  726. :placeholder="'请输入 ' + column.label"
  727. v-model="crudForm.attendance"
  728. @change="salaryAdd(crudForm)"
  729. />
  730. </template>
  731. <template slot="inspectorFinesForm" slot-scope="{ column, disabled }">
  732. <el-input
  733. :disabled="disabled"
  734. :placeholder="'请输入 ' + column.label"
  735. v-model="crudForm.inspectorFines"
  736. @change="salaryAdd(crudForm)"
  737. />
  738. </template>
  739. <template slot="telephoneBillForm" slot-scope="{ column, disabled }">
  740. <el-input
  741. :disabled="disabled"
  742. :placeholder="'请输入 ' + column.label"
  743. v-model="crudForm.telephoneBill"
  744. @change="salaryAdd(crudForm)"
  745. />
  746. </template>
  747. <template slot="learningPowerForm" slot-scope="{ column, disabled }">
  748. <el-input
  749. :disabled="disabled"
  750. :placeholder="'请输入 ' + column.label"
  751. v-model="crudForm.learningPower"
  752. @change="salaryAdd(crudForm)"
  753. />
  754. </template>
  755. <template
  756. slot="dormitoryManagementFeeForm"
  757. slot-scope="{ column, disabled }"
  758. >
  759. <el-input
  760. :disabled="disabled"
  761. :placeholder="'请输入 ' + column.label"
  762. v-model="crudForm.dormitoryManagementFee"
  763. @change="salaryAdd(crudForm)"
  764. />
  765. </template>
  766. <template
  767. slot="childbirthAllowanceForm"
  768. slot-scope="{ column, disabled }"
  769. >
  770. <el-input
  771. :disabled="disabled"
  772. :placeholder="'请输入 ' + column.label"
  773. v-model="crudForm.childbirthAllowance"
  774. @change="salaryAdd(crudForm)"
  775. />
  776. </template>
  777. <template slot="ribbonOneForm" slot-scope="{ column, disabled }">
  778. <el-input
  779. :disabled="disabled"
  780. :placeholder="'请输入 ' + column.label"
  781. v-model="crudForm.ribbonOne"
  782. @change="salaryAdd(crudForm)"
  783. />
  784. </template>
  785. <template slot="ribbonTwoForm" slot-scope="{ column, disabled }">
  786. <el-input
  787. :disabled="disabled"
  788. :placeholder="'请输入 ' + column.label"
  789. v-model="crudForm.ribbonTwo"
  790. @change="salaryAdd(crudForm)"
  791. />
  792. </template>
  793. <template slot="ribbonThreeForm" slot-scope="{ column, disabled }">
  794. <el-input
  795. :disabled="disabled"
  796. :placeholder="'请输入 ' + column.label"
  797. v-model="crudForm.ribbonThree"
  798. @change="salaryAdd(crudForm)"
  799. />
  800. </template>
  801. <template slot="ribbonFourForm" slot-scope="{ column, disabled }">
  802. <el-input
  803. :disabled="disabled"
  804. :placeholder="'请输入 ' + column.label"
  805. v-model="crudForm.ribbonFour"
  806. @change="salaryAdd(crudForm)"
  807. />
  808. </template>
  809. <template slot="ribbonFiveForm" slot-scope="{ column, disabled }">
  810. <el-input
  811. :disabled="disabled"
  812. :placeholder="'请输入 ' + column.label"
  813. v-model="crudForm.ribbonFive"
  814. @change="salaryAdd(crudForm)"
  815. />
  816. </template>
  817. <template slot="ribbonSixForm" slot-scope="{ column, disabled }">
  818. <el-input
  819. :disabled="disabled"
  820. :placeholder="'请输入 ' + column.label"
  821. v-model="crudForm.ribbonSix"
  822. @change="salaryAdd(crudForm)"
  823. />
  824. </template>
  825. <template slot="ribbonSevenForm" slot-scope="{ column, disabled }">
  826. <el-input
  827. :disabled="disabled"
  828. :placeholder="'请输入 ' + column.label"
  829. v-model="crudForm.ribbonSeven"
  830. @change="salaryAdd(crudForm)"
  831. />
  832. </template>
  833. <template slot="ribbonEightForm" slot-scope="{ column, disabled }">
  834. <el-input
  835. :disabled="disabled"
  836. :placeholder="'请输入 ' + column.label"
  837. v-model="crudForm.ribbonEight"
  838. @change="salaryAdd(crudForm)"
  839. />
  840. </template>
  841. <template slot="ribbonNineForm" slot-scope="{ column, disabled }">
  842. <el-input
  843. :disabled="disabled"
  844. :placeholder="'请输入 ' + column.label"
  845. v-model="crudForm.ribbonNine"
  846. @change="salaryAdd(crudForm)"
  847. />
  848. </template>
  849. <template slot="pauseNoPayForm" slot-scope="{ column, disabled }">
  850. <el-input
  851. :disabled="disabled"
  852. :placeholder="'请输入 ' + column.label"
  853. v-model="crudForm.pauseNoPay"
  854. @change="salaryAdd(crudForm)"
  855. />
  856. </template>
  857. <!-- 10.应发工资=基本工资+工作量工资+日常考核工资+奖励工资+职务津贴+班主任津贴+补贴项-扣除项+保险(个人部分)+公积金(个人部分).. 大于800 保险(个人部分) 不加 -->
  858. <template slot="basicsSalaryForm" slot-scope="{ column, disabled }">
  859. <el-input
  860. :disabled="disabled"
  861. :placeholder="'请输入 ' + column.label"
  862. v-model="crudForm.basicsSalary"
  863. @change="salaryAdd(crudForm)"
  864. />
  865. </template>
  866. <template slot="workloadSalaryForm" slot-scope="{ column, disabled }">
  867. <el-input
  868. :disabled="disabled"
  869. :placeholder="'请输入 ' + column.label"
  870. v-model="crudForm.workloadSalary"
  871. @change="salaryAdd(crudForm)"
  872. />
  873. </template>
  874. <template
  875. slot="dailyAssessmentSalaryForm"
  876. slot-scope="{ column, disabled }"
  877. >
  878. <el-input
  879. :disabled="disabled"
  880. :placeholder="'请输入 ' + column.label"
  881. v-model="crudForm.dailyAssessmentSalary"
  882. @change="salaryAdd(crudForm)"
  883. />
  884. </template>
  885. <template slot="awardSalaryForm" slot-scope="{ column, disabled }">
  886. <el-input
  887. :disabled="disabled"
  888. :placeholder="'请输入 ' + column.label"
  889. v-model="crudForm.awardSalary"
  890. @change="salaryAdd(crudForm)"
  891. />
  892. </template>
  893. <template slot="dutyAllowancesForm" slot-scope="{ column, disabled }">
  894. <el-input
  895. :disabled="disabled"
  896. :placeholder="'请输入 ' + column.label"
  897. v-model="crudForm.dutyAllowances"
  898. @change="salaryAdd(crudForm)"
  899. />
  900. </template>
  901. <template
  902. slot="classTeacherSubsidyForm"
  903. slot-scope="{ column, disabled }"
  904. >
  905. <el-input
  906. :disabled="disabled"
  907. :placeholder="'请输入 ' + column.label"
  908. v-model="crudForm.classTeacherSubsidy"
  909. @change="salaryAdd(crudForm)"
  910. />
  911. </template>
  912. <template slot="subsidyForm" slot-scope="{ column, disabled }">
  913. <el-input
  914. :disabled="disabled"
  915. :placeholder="'请输入 ' + column.label"
  916. v-model="crudForm.subsidy"
  917. @change="salaryAdd(crudForm)"
  918. />
  919. </template>
  920. <template slot="deductionsForm" slot-scope="{ column, disabled }">
  921. <el-input
  922. :disabled="disabled"
  923. :placeholder="'请输入 ' + column.label"
  924. v-model="crudForm.deductions"
  925. @change="salaryAdd(crudForm)"
  926. />
  927. </template>
  928. <template
  929. slot="insurancePersonageForm"
  930. slot-scope="{ column, disabled }"
  931. >
  932. <el-input
  933. :disabled="disabled"
  934. :placeholder="'请输入 ' + column.label"
  935. v-model="crudForm.insurancePersonage"
  936. @change="salaryAdd(crudForm)"
  937. />
  938. </template>
  939. <template
  940. slot="reservedFundsPersonageForm"
  941. slot-scope="{ column, disabled }"
  942. >
  943. <el-input
  944. :disabled="disabled"
  945. :placeholder="'请输入 ' + column.label"
  946. v-model="crudForm.reservedFundsPersonage"
  947. @change="salaryAdd(crudForm)"
  948. />
  949. </template>
  950. <!-- 11.实发工资=应发工资-个人所得税-个人保险-公积金个人 -->
  951. <template slot="salaryForm" slot-scope="{ column, disabled }">
  952. <el-input
  953. :disabled="disabled"
  954. :placeholder="'请输入 ' + column.label"
  955. v-model="crudForm.salary"
  956. @change="salaryAdd(crudForm)"
  957. />
  958. </template>
  959. <template slot="personageTaxesForm" slot-scope="{ column, disabled }">
  960. <el-input
  961. :disabled="disabled"
  962. :placeholder="'请输入 ' + column.label"
  963. v-model="crudForm.personageTaxes"
  964. @change="salaryAdd(crudForm)"
  965. />
  966. </template>
  967. <!-- eslint-disable -->
  968. <template
  969. slot="enjoyOfficeTreatmentForm"
  970. slot-scope="{ column, disabled }"
  971. >
  972. <avue-radio
  973. v-model="crudForm.enjoyOfficeTreatment"
  974. :dic="dic"
  975. :disabled="disabled"
  976. @change="salaryAdd(crudForm)"
  977. ></avue-radio>
  978. </template>
  979. <!-- eslint-enable -->
  980. <template slot-scope="{ row, index }" slot="menu">
  981. <el-button
  982. type="text"
  983. size="small"
  984. @click.stop="$refs.crud.rowEdit(row, index)"
  985. :disabled="detailData.status == 1"
  986. >
  987. {{ row.$cellEdit ? "保存" : "编辑" }}
  988. </el-button>
  989. <el-button
  990. type="text"
  991. size="small"
  992. @click.stop="rowDel(row)"
  993. :disabled="detailData.status == 1"
  994. >
  995. 删除
  996. </el-button>
  997. </template>
  998. </avue-crud>
  999. <el-dialog
  1000. title="导入数据"
  1001. append-to-body
  1002. :visible.sync="excelBox"
  1003. width="555px"
  1004. v-dialog-drag
  1005. >
  1006. <avue-form
  1007. :option="excelOption"
  1008. v-model="excelForm"
  1009. table-loading="excelLoading"
  1010. :upload-after="uploadAfter"
  1011. class="schoolupload"
  1012. >
  1013. <template slot="excelTemplate">
  1014. <el-button type="primary" @click="derivation">
  1015. 点击下载<i class="el-icon-download el-icon--right"></i>
  1016. </el-button>
  1017. </template>
  1018. <template slot="date">
  1019. <span>
  1020. {{ time }}
  1021. </span>
  1022. </template>
  1023. </avue-form>
  1024. <p style="text-align: center;color: #DC0505">
  1025. 温馨提示 第一次导入时请先下载模板
  1026. </p>
  1027. </el-dialog>
  1028. </basic-container>
  1029. <containerTitle title="导入附件记录"></containerTitle>
  1030. <basic-container>
  1031. <avue-crud
  1032. :data="annexData"
  1033. :option="annexOption"
  1034. :page.sync="annexPage"
  1035. :table-loading="annexLoading"
  1036. @current-change="currentannexChange"
  1037. @size-change="sizeannexChange"
  1038. @saveColumn="saveannexColumn"
  1039. @refresh-change="refreshannexChange"
  1040. :cell-style="cellStyle"
  1041. >
  1042. <template slot-scope="{ row, index }" slot="menu">
  1043. <el-button
  1044. type="text"
  1045. size="small"
  1046. @click.stop="rowDownload(row, index)"
  1047. >
  1048. 下载
  1049. </el-button>
  1050. </template>
  1051. </avue-crud>
  1052. </basic-container>
  1053. <report-dialog
  1054. :switchDialog="switchDialog"
  1055. :reportId="form.id"
  1056. reportName="后勤部"
  1057. @onClose="onClose()"
  1058. ></report-dialog>
  1059. <el-dialog
  1060. title="温馨提示"
  1061. :visible.sync="dialogVisible"
  1062. width="70%"
  1063. :before-close="handleClose"
  1064. append-to-body
  1065. class="abnormal"
  1066. >
  1067. <span>
  1068. <avue-crud :data="auditList" :option="auditOption">
  1069. <template slot="menuLeft">
  1070. <el-button type="info" size="small" @click.stop="exportAbnormal()"
  1071. >导出
  1072. </el-button>
  1073. </template>
  1074. </avue-crud></span
  1075. >
  1076. <span slot="footer" class="dialog-footer">
  1077. <el-button @click="dialogVisible = false">关闭</el-button>
  1078. </span>
  1079. </el-dialog>
  1080. </div>
  1081. </div>
  1082. </template>
  1083. <script>
  1084. import { getToken } from "@/util/auth";
  1085. import { dateFormat } from "@/util/date";
  1086. import {
  1087. detail,
  1088. copyDetail,
  1089. submit,
  1090. delItem,
  1091. itemAnnex,
  1092. itemDetail,
  1093. pleaseCheck,
  1094. calculate,
  1095. calculate2
  1096. } from "@/api/salaryManagement/primarySchool";
  1097. import { numCal } from "@/util/calculate";
  1098. import { optionList, auditOption } from "./js/optionList";
  1099. import reportDialog from "@/components/report-dialog/main";
  1100. export default {
  1101. name: "detailsPage",
  1102. data() {
  1103. return {
  1104. time: "",
  1105. dialogVisible: false,
  1106. switchDialog: false,
  1107. annexLoading: false,
  1108. crudForm: {},
  1109. excelBox: false,
  1110. loading: false,
  1111. allloading: false,
  1112. xcelLoading: false,
  1113. loadingBtn: false,
  1114. excelForm: {
  1115. type: "1"
  1116. },
  1117. excelOption: {
  1118. submitBtn: false,
  1119. emptyBtn: false,
  1120. column: [
  1121. {
  1122. label: "导入类型",
  1123. prop: "type",
  1124. type: "select",
  1125. dicUrl: "/api/blade-system/dict-biz/dictionary?code=import_type",
  1126. props: {
  1127. label: "dictValue",
  1128. value: "dictKey"
  1129. },
  1130. row: true,
  1131. span: 12
  1132. },
  1133. {
  1134. label: "模板下载",
  1135. prop: "excelTemplate",
  1136. formslot: true,
  1137. span: 10
  1138. },
  1139. {
  1140. label: "当前时间",
  1141. prop: "date",
  1142. span: 13
  1143. },
  1144. {
  1145. label: "模板上传",
  1146. prop: "excelFile",
  1147. type: "upload",
  1148. drag: true,
  1149. loadText: "模板上传中,请稍等",
  1150. span: 24,
  1151. propsHttp: {
  1152. res: "data"
  1153. },
  1154. tip: "请上传 .xls,.xlsx 标准格式文件",
  1155. action: "/api/blade-school/salaryitem/import/workloadExcel",
  1156. disabled: false
  1157. }
  1158. ]
  1159. },
  1160. form: {},
  1161. dataList: [],
  1162. page: {
  1163. pageSize: 20,
  1164. currentPage: 1,
  1165. total: 0,
  1166. pageSizes: [
  1167. 10,
  1168. 20,
  1169. 30,
  1170. 40,
  1171. 50,
  1172. 100,
  1173. 150,
  1174. 200,
  1175. 250,
  1176. 300,
  1177. 350,
  1178. 400,
  1179. 450,
  1180. 500
  1181. ]
  1182. },
  1183. drawer: false,
  1184. dic: [
  1185. {
  1186. label: "是",
  1187. value: "是"
  1188. },
  1189. {
  1190. label: "否",
  1191. value: "否"
  1192. }
  1193. ],
  1194. option: {
  1195. menuBtn: false,
  1196. labelWidth: 80,
  1197. column: [
  1198. {
  1199. label: "年",
  1200. prop: "annual",
  1201. type: "year",
  1202. valueFormat: "yyyy",
  1203. rules: [
  1204. {
  1205. required: true,
  1206. message: "",
  1207. trigger: "blur"
  1208. }
  1209. ],
  1210. span: 5
  1211. },
  1212. {
  1213. label: "月",
  1214. prop: "moon",
  1215. type: "select",
  1216. filterable: true,
  1217. dicUrl: "/api/blade-system/dict-biz/dictionary?code=month",
  1218. props: {
  1219. label: "dictValue",
  1220. value: "dictKey"
  1221. },
  1222. span: 5,
  1223. rules: [
  1224. {
  1225. required: true,
  1226. message: "",
  1227. trigger: "blur"
  1228. }
  1229. ]
  1230. },
  1231. {
  1232. label: "教师人数",
  1233. prop: "personNumber",
  1234. span: 4,
  1235. disabled: true
  1236. },
  1237. {
  1238. label: "学生人数",
  1239. prop: "studentNumber",
  1240. span: 4
  1241. },
  1242. {
  1243. label: "状态",
  1244. prop: "status",
  1245. type: "select",
  1246. span: 6,
  1247. props: {
  1248. label: "name",
  1249. value: "code"
  1250. },
  1251. dicData: [
  1252. {
  1253. name: "录入",
  1254. code: 0
  1255. },
  1256. {
  1257. name: "申请审批",
  1258. code: 1
  1259. },
  1260. {
  1261. name: "审批中",
  1262. code: 2
  1263. },
  1264. {
  1265. name: "审批通过",
  1266. code: 3
  1267. }
  1268. ],
  1269. disabled: true
  1270. },
  1271. {
  1272. label: "备注",
  1273. prop: "remarks",
  1274. type: "textarea",
  1275. span: 24,
  1276. minRows: 2
  1277. }
  1278. ]
  1279. },
  1280. optionList: {},
  1281. exportUrl: "/api/blade-school/salaryitem/export/workloadExcel",
  1282. annexData: [],
  1283. annexOption: {
  1284. align: "center",
  1285. menuAlign: "center",
  1286. addBtn: false,
  1287. border: true,
  1288. index: true,
  1289. viewBtn: false,
  1290. editBtn: false,
  1291. delBtn: false,
  1292. stripe: true,
  1293. menuWidth: 100,
  1294. column: [
  1295. {
  1296. label: "文件类型",
  1297. prop: "fileType",
  1298. overHidden: true
  1299. },
  1300. {
  1301. label: "文件名",
  1302. prop: "cname",
  1303. overHidden: true
  1304. },
  1305. {
  1306. label: "创建时间",
  1307. prop: "createTime",
  1308. overHidden: true
  1309. },
  1310. {
  1311. label: "创建人",
  1312. prop: "createName",
  1313. overHidden: true
  1314. },
  1315. {
  1316. label: "备注",
  1317. prop: "remarks",
  1318. overHidden: true
  1319. }
  1320. ]
  1321. },
  1322. annexPage: {
  1323. pageSize: 10,
  1324. currentPage: 1,
  1325. total: 0,
  1326. pageSizes: [
  1327. 10,
  1328. 20,
  1329. 30,
  1330. 40,
  1331. 50,
  1332. 100,
  1333. 150,
  1334. 200,
  1335. 250,
  1336. 300,
  1337. 350,
  1338. 400,
  1339. 450,
  1340. 500
  1341. ]
  1342. },
  1343. auditList: [],
  1344. auditOption: auditOption
  1345. };
  1346. },
  1347. props: {
  1348. detailData: {
  1349. type: Object
  1350. }
  1351. },
  1352. components: {
  1353. reportDialog
  1354. },
  1355. async created() {
  1356. this.optionList = await this.getColumnData(
  1357. this.getColumnName(115),
  1358. optionList
  1359. );
  1360. if (this.detailData.id) {
  1361. this.getDetail(this.detailData.id);
  1362. }
  1363. if (this.detailData.status == 1) {
  1364. this.$set(this.option, "disabled", true);
  1365. }
  1366. this.getWorkDicts("marital_status").then(res => {
  1367. this.findObject(this.optionList.column, "code").dicData = res.data.data;
  1368. this.$refs.crud.init();
  1369. });
  1370. this.optionList.height = 450;
  1371. this.annexOption.height = 450;
  1372. // this.auditOption.height = 600;
  1373. },
  1374. methods: {
  1375. getTime() {
  1376. setInterval(() => {
  1377. this.time = dateFormat(new Date());
  1378. }, 1000);
  1379. },
  1380. cellStyle() {
  1381. return "padding:0;height:40px;";
  1382. },
  1383. headerCellClassName({ row, column, rowIndex, columnIndex }) {
  1384. if (
  1385. column.property == "basicsSalary" ||
  1386. column.property == "workloadSalary" ||
  1387. column.property == "customizeFour" ||
  1388. column.property == "awardSalary" ||
  1389. column.property == "awardSalary" ||
  1390. column.property == "dutyAllowances" ||
  1391. column.property == "classTeacherSubsidy" ||
  1392. column.property == "subsidy" ||
  1393. column.property == "deductions" ||
  1394. column.property == "salary" ||
  1395. column.property == "fSalary"
  1396. ) {
  1397. return "headerCellClass";
  1398. }
  1399. if (
  1400. column.property == "salaryWithdrawalStandard" ||
  1401. column.property == "rankWithdrawalStandard" ||
  1402. column.property == "customEight" ||
  1403. column.property == "rankStandard" ||
  1404. column.property == "salaryBaseName" ||
  1405. column.property == "workloadSalaryCritertion" ||
  1406. column.property == "virtualWorkloadSalary" ||
  1407. column.property == "doubleCease" ||
  1408. column.property == "dailyAssessmentCriteria" ||
  1409. column.property == "virtualDailyAssessmentCriteria" ||
  1410. column.property == "termPerformanceSalaryName" ||
  1411. column.property == "salaryWithdrawalStandard" ||
  1412. column.property == "rankWithdrawalStandard" ||
  1413. column.property == "rankStandard" ||
  1414. column.property == "salaryBaseName" ||
  1415. column.property == "workloadSalaryCritertion" ||
  1416. column.property == "virtualWorkloadSalary" ||
  1417. column.property == "doubleCease" ||
  1418. column.property == "dailyAssessmentCriteria" ||
  1419. column.property == "virtualDailyAssessmentCriteria" ||
  1420. column.property == "otherCriterion" ||
  1421. column.property == "teacherSubsidy" ||
  1422. column.property == "teacherAssessSubsidy" ||
  1423. column.property == "performanceAwardName" ||
  1424. column.property == "capitalIncreaseName" ||
  1425. column.property == "leadingCadreSubsidyName" ||
  1426. column.property == "assessLeadingCadreSubsidyName" ||
  1427. column.property == "prepareLessonsName" ||
  1428. column.property == "assessPrepareLessonsName" ||
  1429. column.property == "teachingResearchName" ||
  1430. column.property == "assessTeachingResearchName" ||
  1431. column.property == "virtualDoubleCease" ||
  1432. column.property == "schoolAge"
  1433. ) {
  1434. return "headerCellClass2";
  1435. }
  1436. },
  1437. copyDoc() {
  1438. this.$emit("copyOrder", this.form.id);
  1439. },
  1440. getDetail(id) {
  1441. if (this.detailData.status == "copy") {
  1442. this.allloading = true;
  1443. copyDetail(id)
  1444. .then(res => {
  1445. this.form = res.data.data;
  1446. this.getItemDetail();
  1447. })
  1448. .finally(() => {
  1449. this.allloading = false;
  1450. });
  1451. } else {
  1452. detail(id).then(res => {
  1453. this.form = res.data.data;
  1454. this.getItemDetail();
  1455. this.getitemAnnex();
  1456. });
  1457. }
  1458. },
  1459. getItemDetail() {
  1460. const data = {
  1461. pid: this.form.id,
  1462. ...this.search
  1463. };
  1464. this.loading = true;
  1465. itemDetail(this.page.currentPage, this.page.pageSize, data)
  1466. .then(res => {
  1467. this.dataList = res.data.data.records;
  1468. this.page.total = res.data.data.total;
  1469. })
  1470. .finally(() => {
  1471. this.loading = false;
  1472. });
  1473. },
  1474. getitemAnnex() {
  1475. const data = {
  1476. pid: this.form.id
  1477. };
  1478. this.annexLoading = true;
  1479. itemAnnex(this.annexPage.currentPage, this.annexPage.pageSize, data)
  1480. .then(res => {
  1481. this.annexData = res.data.data.records;
  1482. this.annexPage.total = res.data.data.total;
  1483. })
  1484. .finally(() => {
  1485. this.annexLoading = false;
  1486. });
  1487. },
  1488. rowSave(row, done, loading) {
  1489. if (!row.cname) {
  1490. loading();
  1491. return this.$message.error("请完善姓名");
  1492. }
  1493. if (!row.idNumber) {
  1494. loading();
  1495. return this.$message.error("请完善身份证号");
  1496. }
  1497. const arr = [];
  1498. arr.push(row);
  1499. submit({ ...this.form, salaryItemList: arr })
  1500. .then(res => {
  1501. this.$message.success("保存成功");
  1502. this.form = res.data.data;
  1503. this.getItemDetail();
  1504. done();
  1505. })
  1506. .finally(() => {
  1507. loading();
  1508. });
  1509. },
  1510. rowUpdate(row, index, done, loading) {
  1511. if (!row.cname) {
  1512. loading();
  1513. return this.$message.error("请完善姓名");
  1514. }
  1515. if (!row.idNumber) {
  1516. loading();
  1517. return this.$message.error("请完善身份证号");
  1518. }
  1519. const arr = [];
  1520. arr.push(row);
  1521. submit({ ...this.form, salaryType: "后勤部", salaryItemList: arr })
  1522. .then(res => {
  1523. this.$message.success("修改成功");
  1524. this.form = res.data.data;
  1525. this.getItemDetail();
  1526. done();
  1527. })
  1528. .finally(() => {
  1529. loading();
  1530. });
  1531. },
  1532. rowCell(row, index) {
  1533. if (row.$cellEdit == true) {
  1534. if (!row.cname) {
  1535. return this.$message.error("请完善姓名");
  1536. }
  1537. if (!row.idNumber) {
  1538. return this.$message.error("请完善身份证号");
  1539. }
  1540. // if (!row.rankStandard) {
  1541. // return this.$message.error("请完善职级标准");
  1542. // }
  1543. const arr = [];
  1544. arr.push(row);
  1545. this.loading = true;
  1546. submit({ ...this.form, salaryItemList: arr })
  1547. .then(res => {
  1548. this.$message.success("保存成功");
  1549. this.form = res.data.data;
  1550. })
  1551. .finally(() => {
  1552. this.loading = false;
  1553. });
  1554. this.$set(row, "$cellEdit", false);
  1555. } else {
  1556. this.$set(row, "$cellEdit", true);
  1557. }
  1558. },
  1559. rowDel(row) {
  1560. this.$confirm("确定删除数据?", {
  1561. confirmButtonText: "确定",
  1562. cancelButtonText: "取消",
  1563. type: "warning"
  1564. }).then(() => {
  1565. if (row.id) {
  1566. delItem(row.id).then(res => {
  1567. this.$message({
  1568. type: "success",
  1569. message: "删除成功!"
  1570. });
  1571. this.getItemDetail();
  1572. });
  1573. } else {
  1574. this.$message({
  1575. type: "success",
  1576. message: "删除成功!"
  1577. });
  1578. this.dataList.splice(row.$index, 1);
  1579. }
  1580. });
  1581. },
  1582. rowDownload(row) {
  1583. window.open(`${row.url}?${this.website.tokenHeader}=${getToken()}`);
  1584. },
  1585. searchChange(params, done) {
  1586. if (!this.form.id) {
  1587. done();
  1588. return this.$message.error("请保存数据");
  1589. }
  1590. this.getItemDetail();
  1591. done();
  1592. },
  1593. currentChange(val) {
  1594. this.page.currentPage = val;
  1595. this.getItemDetail();
  1596. },
  1597. sizeChange(val) {
  1598. this.page.currentPage = 1;
  1599. this.page.pageSize = val;
  1600. this.getItemDetail();
  1601. },
  1602. refreshChange() {
  1603. this.getItemDetail();
  1604. },
  1605. currentannexChange(val) {
  1606. this.annexPage.currentPage = val;
  1607. this.getitemAnnex();
  1608. },
  1609. sizeannexChange(val) {
  1610. this.annexPage.currentPage = 1;
  1611. this.annexPage.pageSize = val;
  1612. this.getitemAnnex();
  1613. },
  1614. refreshannexChange() {
  1615. this.getitemAnnex();
  1616. },
  1617. uploadAfter(res, done, loading, column) {
  1618. this.excelBox = false;
  1619. // this.$message.success("导入成功!");
  1620. this.getItemDetail();
  1621. this.getitemAnnex();
  1622. done();
  1623. },
  1624. //修改提交触发
  1625. editCustomer() {
  1626. this.$refs["form"].validate((valid, done) => {
  1627. done();
  1628. if (valid) {
  1629. for (let i = 0; i < this.dataList.length; i++) {
  1630. if (!this.dataList[i].cname) {
  1631. return this.$message.error(
  1632. "请完善第" + Number(1 + i) + "行的姓名"
  1633. );
  1634. }
  1635. if (!this.dataList[i].idNumber) {
  1636. return this.$message.error(
  1637. "请完善第" + Number(1 + i) + "行的身份证号"
  1638. );
  1639. }
  1640. if (!this.dataList[i].rankStandard) {
  1641. return this.$message.error(
  1642. "请完善第" + Number(1 + i) + "行的职级标准"
  1643. );
  1644. }
  1645. }
  1646. this.loadingBtn = true;
  1647. submit({
  1648. ...this.form,
  1649. salaryType: "后勤部",
  1650. salaryItemList: this.dataList
  1651. })
  1652. .then(res => {
  1653. this.$message.success("保存成功");
  1654. this.form = res.data.data;
  1655. this.getItemDetail();
  1656. })
  1657. .finally(() => {
  1658. this.loadingBtn = false;
  1659. });
  1660. } else {
  1661. return false;
  1662. }
  1663. });
  1664. },
  1665. derivation() {
  1666. if (!this.excelForm.type) {
  1667. return this.$message.error("请选择导入类型");
  1668. }
  1669. if (!this.exportUrl) {
  1670. return this.$message.error("暂无模板文件");
  1671. }
  1672. window.open(
  1673. `${this.exportUrl}?${this.website.tokenHeader}=${getToken()}`
  1674. );
  1675. },
  1676. openExport() {
  1677. if (!this.form.id) {
  1678. return this.$message.error("请先保存数据");
  1679. }
  1680. window.open(
  1681. `/api/blade-school/salaryitem/export/teacher?${
  1682. this.website.tokenHeader
  1683. }=${getToken()}&pid=${this.form.id}`
  1684. );
  1685. },
  1686. calculate() {
  1687. if (!this.form.id) {
  1688. return this.$message.error("请先保存数据");
  1689. }
  1690. this.loading = true;
  1691. calculate({ pid: this.form.id })
  1692. .then(res => {
  1693. if (res.data.code == "200") {
  1694. this.getItemDetail();
  1695. }
  1696. })
  1697. .finally(() => {
  1698. this.loading = false;
  1699. });
  1700. },
  1701. calculate2() {
  1702. // return this.$message.error("正在开发中");
  1703. if (!this.form.id) {
  1704. return this.$message.error("请先保存数据");
  1705. }
  1706. this.loading = true;
  1707. calculate2({ inSection: "后勤部", pid: this.form.id })
  1708. .then(res => {
  1709. if (res.data.code == "200") {
  1710. this.getItemDetail();
  1711. }
  1712. })
  1713. .finally(() => {
  1714. this.loading = false;
  1715. });
  1716. },
  1717. importExcel() {
  1718. if (!this.form.id) {
  1719. return this.$message.error("请先保存数据");
  1720. }
  1721. this.excelOption.column.forEach(e => {
  1722. if (e.prop == "excelFile") {
  1723. e.data = {
  1724. id: this.form.id
  1725. };
  1726. }
  1727. });
  1728. this.excelBox = true;
  1729. this.getTime();
  1730. },
  1731. //导出全部
  1732. exportAll() {
  1733. let opt = {
  1734. title: "工资条",
  1735. column: this.optionList.column,
  1736. data: this.dataList
  1737. };
  1738. this.$Export.excel({
  1739. title: opt.title,
  1740. columns: opt.column,
  1741. data: opt.data
  1742. });
  1743. },
  1744. salaryAdd(row) {
  1745. // 1. 基础工资 = +M153(校龄工资)+N153(增资)+O153(学历工资)+Q153(职级工资)+L153(履约奖)+R153(工资基数)
  1746. row.basicsSalary = Number(
  1747. numCal(row.schoolAgeSalary) +
  1748. numCal(row.capitalIncrease) +
  1749. numCal(row.educationSalary) +
  1750. numCal(row.rankSalary) +
  1751. numCal(row.salaryBase) +
  1752. numCal(row.performanceAward)
  1753. ).toFixed(2);
  1754. //2. 工作量工资 = 月份工作量工资+代课工作量工资+双休日工作量工资+工作量工资1+…+工作量工资5-虚拟工作量工资标准-虚拟双休日工作量工资标准
  1755. row.workloadSalary = Number(
  1756. numCal(row.momthWorkloadSalary) +
  1757. numCal(row.customTwo) +
  1758. numCal(row.doubleMoney) +
  1759. numCal(row.customThree) +
  1760. numCal(row.customFour) +
  1761. numCal(row.customFive) +
  1762. numCal(row.customSix) +
  1763. numCal(row.customSeven) -
  1764. numCal(row.virtualDailyAssessmentCriteria) -
  1765. numCal(row.virtualDoubleCease)
  1766. ).toFixed(2);
  1767. //3.日常考核工资 =日常考核工资-虚拟日常考核标准
  1768. row.dailyAssessmentSalary = Number(
  1769. numCal(row.dailyAssessmentSalary) -
  1770. numCal(row.virtualDailyAssessmentCriteria)
  1771. ).toFixed(2);
  1772. // 4.绩效工资=学期绩效工资+学期绩效工资1+..+学期绩效工资5
  1773. row.customizeFour = Number(
  1774. numCal(row.termPerformanceSalary) +
  1775. numCal(row.customNine) +
  1776. numCal(row.customize) +
  1777. numCal(row.customizeOne) +
  1778. numCal(row.customizeTwo) +
  1779. numCal(row.customizeThree)
  1780. ).toFixed(2);
  1781. // 5.奖励工资=奖励1+…+奖励10
  1782. row.awardSalary = Number(
  1783. numCal(row.customAward) +
  1784. numCal(row.customAwardOne) +
  1785. numCal(row.customAwardTwo) +
  1786. numCal(row.customAwardThree) +
  1787. numCal(row.customAwardFour) +
  1788. numCal(row.customAwardFive) +
  1789. numCal(row.customAwardSix) +
  1790. numCal(row.customAwardSeven) +
  1791. numCal(row.customAwardEight) +
  1792. numCal(row.customAwardNine)
  1793. ).toFixed(2);
  1794. // 6.职务津贴=领导干部补贴+领导干部考核补贴+备课组长+备课组长考核补贴+教研组长+教研组长考核补贴
  1795. row.dutyAllowances = Number(
  1796. numCal(row.leadingCadreSubsidy) +
  1797. numCal(row.customizeFive) +
  1798. numCal(row.prepareLessons) +
  1799. numCal(row.customizeSix) +
  1800. numCal(row.teachingResearch) +
  1801. numCal(row.customizeSeven)
  1802. ).toFixed(2);
  1803. // 7.班主任津贴=班主任补贴+班额津贴-校车考核-班级微信群考核-财务考核+班主任考核津贴
  1804. row.classTeacherSubsidy = Number(
  1805. numCal(row.classTeacherFee) +
  1806. numCal(row.classes) -
  1807. numCal(row.adjustTheBalance) -
  1808. numCal(row.payrollCredit) -
  1809. numCal(row.paid) +
  1810. numCal(row.customizeEight)
  1811. ).toFixed(2);
  1812. // 8.补贴项=微信+产假工资+周末工作量工资+补贴1+…+补贴10
  1813. row.subsidy = Number(
  1814. numCal(row.wx) +
  1815. numCal(row.maternityLeaveSalary) +
  1816. numCal(row.overtimeAtWeekend) +
  1817. numCal(row.yearUpPerformance) +
  1818. numCal(row.yearDownPerformance) +
  1819. numCal(row.cadreAllowanceReservation) +
  1820. numCal(row.vacationOvertimePay) +
  1821. numCal(row.newPostTrain) +
  1822. numCal(row.winningPrize) +
  1823. numCal(row.classMinister) +
  1824. numCal(row.monthViceClassFee) +
  1825. numCal(row.safetyFees) +
  1826. numCal(row.reserveReplacement)
  1827. ).toFixed(2);
  1828. // 9.扣除项=出勤+督查+超额电话费+学习强国+宿舍管理费+生育津贴+扣除1+…+扣除10
  1829. row.deductions = Number(
  1830. numCal(row.attendance) +
  1831. numCal(row.inspectorFines) +
  1832. numCal(row.telephoneBill) +
  1833. numCal(row.learningPower) +
  1834. numCal(row.dormitoryManagementFee) +
  1835. numCal(row.childbirthAllowance) +
  1836. numCal(row.ribbonOne) +
  1837. numCal(row.ribbonTwo) +
  1838. numCal(row.ribbonThree) +
  1839. numCal(row.ribbonFour) +
  1840. numCal(row.ribbonFive) +
  1841. numCal(row.ribbonSix) +
  1842. numCal(row.ribbonSeven) +
  1843. numCal(row.ribbonEight) +
  1844. numCal(row.ribbonNine) +
  1845. numCal(row.pauseNoPay)
  1846. ).toFixed(2);
  1847. // 10.应发工资=基本工资+工作量工资+日常考核工资+奖励工资+职务津贴+班主任津贴+补贴项-扣除项+保险(个人部分)+公积金(个人部分).. 大于800 保险(个人部分) 不加
  1848. if (row.enjoyOfficeTreatment == "是") {
  1849. row.salary = Number(
  1850. numCal(row.basicsSalary) +
  1851. numCal(row.workloadSalary) +
  1852. numCal(row.dailyAssessmentSalary) +
  1853. numCal(row.awardSalary) +
  1854. numCal(row.dutyAllowances) +
  1855. numCal(row.classTeacherSubsidy) +
  1856. numCal(row.subsidy) -
  1857. numCal(row.deductions) +
  1858. numCal(row.reservedFundsPersonage)
  1859. ).toFixed(2);
  1860. } else {
  1861. row.salary = Number(
  1862. numCal(row.basicsSalary) +
  1863. numCal(row.workloadSalary) +
  1864. numCal(row.dailyAssessmentSalary) +
  1865. numCal(row.awardSalary) +
  1866. numCal(row.dutyAllowances) +
  1867. numCal(row.classTeacherSubsidy) +
  1868. numCal(row.subsidy) -
  1869. numCal(row.deductions) +
  1870. numCal(row.insurancePersonage) +
  1871. numCal(row.reservedFundsPersonage)
  1872. ).toFixed(2);
  1873. }
  1874. // 11.实发工资=应发工资-个人所得税-个人保险-公积金个人
  1875. row.fSalary = Number(
  1876. numCal(row.salary) -
  1877. numCal(row.personageTaxes) -
  1878. numCal(row.insurancePersonage) -
  1879. numCal(row.reservedFundsPersonage)
  1880. ).toFixed(2);
  1881. },
  1882. //导出工资条
  1883. exportSalary() {
  1884. let data = [];
  1885. for (let item in this.optionList.column) {
  1886. switch (this.optionList.column[item].prop) {
  1887. case "salaryBase":
  1888. data.push(this.optionList.column[item]);
  1889. break;
  1890. case "workloadSalary":
  1891. data.push(this.optionList.column[item]);
  1892. break;
  1893. case "dailyAssessmentSalary":
  1894. data.push(this.optionList.column[item]);
  1895. break;
  1896. case "awardSalary":
  1897. data.push(this.optionList.column[item]);
  1898. break;
  1899. case "dutyAllowances":
  1900. data.push(this.optionList.column[item]);
  1901. break;
  1902. case "classTeacherSubsidy":
  1903. data.push(this.optionList.column[item]);
  1904. break;
  1905. case "subsidy":
  1906. data.push(this.optionList.column[item]);
  1907. break;
  1908. case "deductions":
  1909. data.push(this.optionList.column[item]);
  1910. break;
  1911. case "insuranceUnit":
  1912. data.push(this.optionList.column[item]);
  1913. break;
  1914. case "insurancePersonage":
  1915. data.push(this.optionList.column[item]);
  1916. break;
  1917. case "reservedFundsUnit":
  1918. data.push(this.optionList.column[item]);
  1919. break;
  1920. case "reservedFundsPersonage":
  1921. data.push(this.optionList.column[item]);
  1922. break;
  1923. case "salary":
  1924. data.push(this.optionList.column[item]);
  1925. break;
  1926. case "personageTaxes":
  1927. data.push(this.optionList.column[item]);
  1928. break;
  1929. case "fsalary":
  1930. data.push(this.optionList.column[item]);
  1931. break;
  1932. }
  1933. }
  1934. let opt = {
  1935. title: "工资条",
  1936. column: data,
  1937. data: this.dataList
  1938. };
  1939. this.$Export.excel({
  1940. title: opt.title,
  1941. columns: opt.column,
  1942. data: opt.data
  1943. });
  1944. },
  1945. openEdit() {
  1946. const data = {
  1947. moduleName: "hqb",
  1948. tableName: "primary_school",
  1949. billId: this.form.id,
  1950. no: localStorage.getItem("browserID"),
  1951. billNo: this.form.annual + "-" + this.form.moon
  1952. };
  1953. this.inDetailsKey(this.$route.name, {
  1954. moduleName: "hqb",
  1955. tableName: "primary_school",
  1956. billId: this.form.id,
  1957. billNo: this.form.annual + "-" + this.form.moon
  1958. });
  1959. this.checkLock(data).then(res => {
  1960. if (res.data.code == 200) {
  1961. this.onLock(data).then(res => {
  1962. if (res.data.code == 200) {
  1963. this.detailData.status = 2;
  1964. this.option = this.$options.data().option;
  1965. this.findObject(
  1966. this.option.column,
  1967. "studentNumber"
  1968. ).disabled = false;
  1969. }
  1970. });
  1971. }
  1972. });
  1973. },
  1974. openReport() {
  1975. this.switchDialog = !this.switchDialog;
  1976. },
  1977. onClose(val) {
  1978. this.switchDialog = val;
  1979. },
  1980. // 请核
  1981. pleaseCheck() {
  1982. this.$confirm("您确定提交此次申请吗?", {
  1983. confirmButtonText: "确定",
  1984. cancelButtonText: "取消",
  1985. type: "warning"
  1986. }).then(() => {
  1987. const data = {
  1988. id: this.form.id,
  1989. checkType: "hqgz",
  1990. url: "/salaryManagement/logisticsDepartment/index",
  1991. pageStatus: "this.$store.getters.domSaleStatus",
  1992. pageLabel: "后勤部",
  1993. checkFlag: 2
  1994. };
  1995. pleaseCheck(data).then(res => {
  1996. if (res.data.msg == "请核失败") {
  1997. this.dialogVisible = true;
  1998. this.auditList = res.data.data;
  1999. } else {
  2000. this.$message.success("请核成功");
  2001. this.detailData.status = 1;
  2002. this.option.disabled = true;
  2003. this.getDetail(this.form.id);
  2004. }
  2005. });
  2006. });
  2007. },
  2008. handleClose() {
  2009. this.auditList = [];
  2010. this.dialogVisible = false;
  2011. },
  2012. exportAbnormal() {
  2013. window.open(
  2014. `/api//blade-school/salaryitem/export/exception?${
  2015. this.website.tokenHeader
  2016. }=${getToken()}&pid=${this.form.id}`
  2017. );
  2018. },
  2019. async saveColumn() {
  2020. const inSave = await this.saveColumnData(
  2021. this.getColumnName(115),
  2022. this.optionList
  2023. );
  2024. if (inSave) {
  2025. this.$nextTick(() => {
  2026. this.$refs.crud.doLayout();
  2027. });
  2028. this.$message.success("保存成功");
  2029. //关闭窗口
  2030. this.$refs.crud.$refs.dialogColumn.columnBox = false;
  2031. }
  2032. },
  2033. async resetColumn() {
  2034. this.optionList = optionList;
  2035. const inSave = await this.delColumnData(
  2036. this.getColumnName(115),
  2037. optionList
  2038. );
  2039. if (inSave) {
  2040. this.$nextTick(() => {
  2041. this.$refs.crud.doLayout();
  2042. });
  2043. this.$message.success("重置成功");
  2044. this.$refs.crud.$refs.dialogColumn.columnBox = false;
  2045. }
  2046. },
  2047. //返回列表
  2048. backToList() {
  2049. if (this.form.id) {
  2050. this.unLock({
  2051. moduleName: "hqb",
  2052. tableName: "primary_school",
  2053. billId: this.form.id,
  2054. billNo: this.form.annual + "-" + this.form.moon
  2055. });
  2056. }
  2057. this.$emit("goBack");
  2058. this.leaveDetailsKey(this.$route.name);
  2059. }
  2060. },
  2061. watch: {
  2062. "excelForm.type": function(val) {
  2063. if (val) {
  2064. switch (val) {
  2065. case "1":
  2066. this.exportUrl =
  2067. "/api/blade-school/salaryitem/export/workloadExcel";
  2068. this.findObject(this.excelOption.column, "excelFile").action =
  2069. "/api/blade-school/salaryitem/import/workloadExcel";
  2070. this.findObject(
  2071. this.excelOption.column,
  2072. "excelFile"
  2073. ).disabled = false;
  2074. break;
  2075. case "2":
  2076. this.exportUrl =
  2077. "/api/blade-school/salaryitem/export/teacherSubsidy";
  2078. this.findObject(this.excelOption.column, "excelFile").action =
  2079. "/api/blade-school/salaryitem/import/teacherSubsidy";
  2080. this.findObject(
  2081. this.excelOption.column,
  2082. "excelFile"
  2083. ).disabled = false;
  2084. break;
  2085. case "3":
  2086. this.exportUrl =
  2087. "/api/blade-school/salaryitem/export/schoolBusExcel";
  2088. this.findObject(this.excelOption.column, "excelFile").action =
  2089. "/api/blade-school/salaryitem/import/schoolBusExcel";
  2090. this.findObject(
  2091. this.excelOption.column,
  2092. "excelFile"
  2093. ).disabled = false;
  2094. break;
  2095. case "4":
  2096. this.exportUrl =
  2097. "/api/blade-school/salaryitem/export/classWeChatExcel";
  2098. this.findObject(this.excelOption.column, "excelFile").action =
  2099. "/api/blade-school/salaryitem/import/classWeChatExcel";
  2100. this.findObject(
  2101. this.excelOption.column,
  2102. "excelFile"
  2103. ).disabled = false;
  2104. break;
  2105. case "5":
  2106. this.exportUrl = "/api/blade-school/salaryitem/export/fnanceExcel";
  2107. this.findObject(this.excelOption.column, "excelFile").action =
  2108. "/api/blade-school/salaryitem/import/fnanceExcel";
  2109. this.findObject(
  2110. this.excelOption.column,
  2111. "excelFile"
  2112. ).disabled = false;
  2113. break;
  2114. case "6":
  2115. this.exportUrl = "/api/blade-school/salaryitem/export/position";
  2116. this.findObject(this.excelOption.column, "excelFile").action =
  2117. "/api/blade-school/salaryitem/import/position";
  2118. this.findObject(
  2119. this.excelOption.column,
  2120. "excelFile"
  2121. ).disabled = false;
  2122. break;
  2123. case "7":
  2124. this.exportUrl = "/api/blade-school/salaryitem/export/zhaPingExcel";
  2125. this.findObject(this.excelOption.column, "excelFile").action =
  2126. "/api/blade-school/salaryitem/import/zhaPingExcel";
  2127. this.findObject(
  2128. this.excelOption.column,
  2129. "excelFile"
  2130. ).disabled = false;
  2131. break;
  2132. case "8":
  2133. this.exportUrl = "/api/blade-school/salaryitem/export/overtime";
  2134. this.findObject(this.excelOption.column, "excelFile").action =
  2135. "/api/blade-school/salaryitem/import/overtime";
  2136. this.findObject(
  2137. this.excelOption.column,
  2138. "excelFile"
  2139. ).disabled = false;
  2140. break;
  2141. case "9":
  2142. this.exportUrl = "/api/blade-school/salaryitem/export/weChat";
  2143. this.findObject(this.excelOption.column, "excelFile").action =
  2144. "/api/blade-school/salaryitem/import/weChat";
  2145. this.findObject(
  2146. this.excelOption.column,
  2147. "excelFile"
  2148. ).disabled = false;
  2149. break;
  2150. case "10":
  2151. this.exportUrl = "/api/blade-school/salaryitem/export/power";
  2152. this.findObject(this.excelOption.column, "excelFile").action =
  2153. "/api/blade-school/salaryitem/import/power";
  2154. this.findObject(
  2155. this.excelOption.column,
  2156. "excelFile"
  2157. ).disabled = false;
  2158. break;
  2159. case "11":
  2160. this.exportUrl = "/api/blade-school/salaryitem/export/phoneFine";
  2161. this.findObject(this.excelOption.column, "excelFile").action =
  2162. "/api/blade-school/salaryitem/import/phoneFine";
  2163. this.findObject(
  2164. this.excelOption.column,
  2165. "excelFile"
  2166. ).disabled = false;
  2167. break;
  2168. case "12":
  2169. this.exportUrl = "/api/blade-school/salaryitem/export/fineExcel";
  2170. this.findObject(this.excelOption.column, "excelFile").action =
  2171. "/api/blade-school/salaryitem/import/fineExcel";
  2172. this.findObject(
  2173. this.excelOption.column,
  2174. "excelFile"
  2175. ).disabled = false;
  2176. break;
  2177. case "13":
  2178. this.exportUrl =
  2179. "/api/blade-school/salaryitem/export/sanitationFee";
  2180. this.findObject(this.excelOption.column, "excelFile").action =
  2181. "/api/blade-school/salaryitem/import/sanitationFee";
  2182. this.findObject(
  2183. this.excelOption.column,
  2184. "excelFile"
  2185. ).disabled = false;
  2186. break;
  2187. case "14":
  2188. this.exportUrl =
  2189. "/api/blade-school/salaryitem/export/insuranceExcel";
  2190. this.findObject(this.excelOption.column, "excelFile").action =
  2191. "/api/blade-school/salaryitem/import/insuranceExcel";
  2192. this.findObject(
  2193. this.excelOption.column,
  2194. "excelFile"
  2195. ).disabled = false;
  2196. break;
  2197. case "15":
  2198. this.exportUrl =
  2199. "/api/blade-school/salaryitem/export/reservedFunds";
  2200. this.findObject(this.excelOption.column, "excelFile").action =
  2201. "/api/blade-school/salaryitem/import/reservedFunds";
  2202. this.findObject(
  2203. this.excelOption.column,
  2204. "excelFile"
  2205. ).disabled = false;
  2206. break;
  2207. case "16":
  2208. this.exportUrl =
  2209. "/api/blade-school/salaryitem/export/attendanceExcel";
  2210. this.findObject(this.excelOption.column, "excelFile").action =
  2211. "/api/blade-school/salaryitem/import/attendanceExcel";
  2212. this.findObject(
  2213. this.excelOption.column,
  2214. "excelFile"
  2215. ).disabled = false;
  2216. break;
  2217. case "17":
  2218. this.exportUrl =
  2219. "/api/blade-school/salaryitem/export/eomNumberExcel";
  2220. this.findObject(this.excelOption.column, "excelFile").action =
  2221. "/api/blade-school/salaryitem/import/eomNumberExcel";
  2222. this.findObject(
  2223. this.excelOption.column,
  2224. "excelFile"
  2225. ).disabled = false;
  2226. break;
  2227. case "18":
  2228. this.exportUrl = "/api/blade-school/salaryitem/export/payTaxes";
  2229. this.findObject(this.excelOption.column, "excelFile").action =
  2230. "/api/blade-school/salaryitem/import/payTaxes";
  2231. this.findObject(
  2232. this.excelOption.column,
  2233. "excelFile"
  2234. ).disabled = false;
  2235. break;
  2236. case "19":
  2237. this.exportUrl = "/api/blade-school/salaryitem/export/awardExcel";
  2238. this.findObject(this.excelOption.column, "excelFile").action =
  2239. "/api/blade-school/salaryitem/import/awardExcel";
  2240. this.findObject(
  2241. this.excelOption.column,
  2242. "excelFile"
  2243. ).disabled = false;
  2244. break;
  2245. case "20":
  2246. this.exportUrl = "/api/blade-school/salaryitem/export/subsidyExcel";
  2247. this.findObject(this.excelOption.column, "excelFile").action =
  2248. "/api/blade-school/salaryitem/import/subsidyExcel";
  2249. this.findObject(
  2250. this.excelOption.column,
  2251. "excelFile"
  2252. ).disabled = false;
  2253. break;
  2254. case "21":
  2255. this.exportUrl = "/api/blade-school/salaryitem/export/deductExcel";
  2256. this.findObject(this.excelOption.column, "excelFile").action =
  2257. "/api/blade-school/salaryitem/import/deductExcel";
  2258. this.findObject(
  2259. this.excelOption.column,
  2260. "excelFile"
  2261. ).disabled = false;
  2262. break;
  2263. case "22":
  2264. this.exportUrl = "/api/blade-school/salaryitem/export/leadExcel";
  2265. this.findObject(this.excelOption.column, "excelFile").action =
  2266. "/api/blade-school/salaryitem/import/leadExcel";
  2267. this.findObject(
  2268. this.excelOption.column,
  2269. "excelFile"
  2270. ).disabled = false;
  2271. break;
  2272. case "23":
  2273. this.exportUrl =
  2274. "/api/blade-school/salaryitem/export/teamLeaderExcel";
  2275. this.findObject(this.excelOption.column, "excelFile").action =
  2276. "/api/blade-school/salaryitem/import/teamLeaderExcel";
  2277. this.findObject(
  2278. this.excelOption.column,
  2279. "excelFile"
  2280. ).disabled = false;
  2281. break;
  2282. case "24":
  2283. this.exportUrl =
  2284. "/api/blade-school/salaryitem/export/prepareLessonsExcel";
  2285. this.findObject(this.excelOption.column, "excelFile").action =
  2286. "/api/blade-school/salaryitem/import/prepareLessonsExcel";
  2287. this.findObject(
  2288. this.excelOption.column,
  2289. "excelFile"
  2290. ).disabled = false;
  2291. break;
  2292. case "25":
  2293. this.exportUrl =
  2294. "/api/blade-school/salaryitem/export/teachingExcel";
  2295. this.findObject(this.excelOption.column, "excelFile").action =
  2296. "/api/blade-school/salaryitem/import/teachingExcel";
  2297. this.findObject(
  2298. this.excelOption.column,
  2299. "excelFile"
  2300. ).disabled = false;
  2301. break;
  2302. case "26":
  2303. this.exportUrl =
  2304. "/api/blade-school/salaryitem/export/doubleWorkloadExcel";
  2305. this.findObject(this.excelOption.column, "excelFile").action =
  2306. "/api/blade-school/salaryitem/import/doubleWorkloadExcel";
  2307. this.findObject(
  2308. this.excelOption.column,
  2309. "excelFile"
  2310. ).disabled = false;
  2311. break;
  2312. case "27":
  2313. this.exportUrl =
  2314. "/api/blade-school/salaryitem/export/probationExcel";
  2315. this.findObject(this.excelOption.column, "excelFile").action =
  2316. "/api/blade-school/salaryitem/import/probationExcel";
  2317. this.findObject(
  2318. this.excelOption.column,
  2319. "excelFile"
  2320. ).disabled = false;
  2321. break;
  2322. case "28":
  2323. this.exportUrl = "/api/blade-school/salaryitem/export/maternityPay";
  2324. this.findObject(this.excelOption.column, "excelFile").action =
  2325. "/api/blade-school/salaryitem/import/maternityPay";
  2326. this.findObject(
  2327. this.excelOption.column,
  2328. "excelFile"
  2329. ).disabled = false;
  2330. break;
  2331. case "29":
  2332. this.exportUrl = "/api/blade-school/salaryitem/export/woChenGeld";
  2333. this.findObject(this.excelOption.column, "excelFile").action =
  2334. "/api/blade-school/salaryitem/import/woChenGeld";
  2335. this.findObject(
  2336. this.excelOption.column,
  2337. "excelFile"
  2338. ).disabled = false;
  2339. break;
  2340. case "30":
  2341. this.exportUrl =
  2342. "/api/blade-school/salaryitem/export/customWorkload";
  2343. this.findObject(this.excelOption.column, "excelFile").action =
  2344. "/api/blade-school/salaryitem/import/customWorkload";
  2345. this.findObject(
  2346. this.excelOption.column,
  2347. "excelFile"
  2348. ).disabled = false;
  2349. break;
  2350. case "31":
  2351. this.exportUrl =
  2352. "/api/blade-school/salaryitem/export/staffInformation";
  2353. this.findObject(this.excelOption.column, "excelFile").action =
  2354. "/api/blade-school/salaryitem/import/staffInformation";
  2355. this.findObject(
  2356. this.excelOption.column,
  2357. "excelFile"
  2358. ).disabled = false;
  2359. break;
  2360. case "32":
  2361. this.exportUrl =
  2362. "/api/blade-school/salaryitem/export/salaryMessage";
  2363. this.findObject(this.excelOption.column, "excelFile").action =
  2364. "/api/blade-school/salaryitem/import/salaryMessage";
  2365. this.findObject(
  2366. this.excelOption.column,
  2367. "excelFile"
  2368. ).disabled = false;
  2369. break;
  2370. case "33":
  2371. this.exportUrl =
  2372. "/api/blade-school/salaryitem/export/teamLeaderAssessExcel";
  2373. this.findObject(this.excelOption.column, "excelFile").action =
  2374. "/api/blade-school/salaryitem/import/teamLeaderAssessExcel";
  2375. this.findObject(
  2376. this.excelOption.column,
  2377. "excelFile"
  2378. ).disabled = false;
  2379. break;
  2380. case "34":
  2381. this.exportUrl =
  2382. "/api/blade-school/salaryitem/export/prepareAssessExcel";
  2383. this.findObject(this.excelOption.column, "excelFile").action =
  2384. "/api/blade-school/salaryitem/import/prepareAssessExcel";
  2385. this.findObject(
  2386. this.excelOption.column,
  2387. "excelFile"
  2388. ).disabled = false;
  2389. break;
  2390. case "35":
  2391. this.exportUrl =
  2392. "/api/blade-school/salaryitem/export/leadAssessExcel";
  2393. this.findObject(this.excelOption.column, "excelFile").action =
  2394. "/api/blade-school/salaryitem/import/leadAssessExcel";
  2395. this.findObject(
  2396. this.excelOption.column,
  2397. "excelFile"
  2398. ).disabled = false;
  2399. break;
  2400. default:
  2401. this.findObject(
  2402. this.excelOption.column,
  2403. "excelFile"
  2404. ).disabled = true;
  2405. this.exportUrl = "";
  2406. }
  2407. } else {
  2408. this.findObject(this.excelOption.column, "excelFile").disabled = true;
  2409. }
  2410. }
  2411. }
  2412. };
  2413. </script>
  2414. <style>
  2415. .headerCellClass {
  2416. color: #fff !important;
  2417. background: #a4cf57 !important;
  2418. }
  2419. .headerCellClass2 {
  2420. color: #fff !important;
  2421. background: #a0cfff !important;
  2422. }
  2423. </style>
  2424. <style lang="scss" scoped>
  2425. .trading-form ::v-deep .el-form-item {
  2426. margin-bottom: 4px !important;
  2427. }
  2428. ::v-deep .el-form-item__error {
  2429. display: none !important;
  2430. }
  2431. .schoolupload ::v-deep .el-upload-list {
  2432. display: none;
  2433. }
  2434. .abnormal ::v-deep .el-dialog__body {
  2435. padding: 10px 20px;
  2436. }
  2437. .primarySchoolClass ::v-deep ::-webkit-scrollbar {
  2438. width: 7px;
  2439. height: 10px;
  2440. background-color: transparent;
  2441. }
  2442. .primarySchoolClass ::v-deep ::-webkit-scrollbar-thumb {
  2443. border-radius: 6px;
  2444. background-color: hsla(226, 12%, 71%, 0.2);
  2445. }
  2446. </style>