detailsPage.vue 81 KB

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