detailsPage.vue 80 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419
  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">
  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="!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">
  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. <template
  968. slot="enjoyOfficeTreatmentForm"
  969. slot-scope="{ column, disabled }"
  970. >
  971. <avue-radio
  972. v-model="crudForm.enjoyOfficeTreatment"
  973. :dic="dic"
  974. :disabled="disabled"
  975. @change="salaryAdd(crudForm)"
  976. ></avue-radio>
  977. </template>
  978. <template slot-scope="{ row, index }" slot="menu">
  979. <el-button
  980. type="text"
  981. size="small"
  982. @click.stop="$refs.crud.rowEdit(row, index)"
  983. :disabled="detailData.status == 1"
  984. >
  985. {{ row.$cellEdit ? "保存" : "编辑" }}
  986. </el-button>
  987. <el-button
  988. type="text"
  989. size="small"
  990. @click.stop="rowDel(row)"
  991. :disabled="detailData.status == 1"
  992. >
  993. 删除
  994. </el-button>
  995. </template>
  996. </avue-crud>
  997. <el-dialog
  998. title="导入数据"
  999. append-to-body
  1000. :visible.sync="excelBox"
  1001. width="555px"
  1002. v-dialog-drag
  1003. >
  1004. <avue-form
  1005. :option="excelOption"
  1006. v-model="excelForm"
  1007. table-loading="excelLoading"
  1008. :upload-after="uploadAfter"
  1009. class="schoolupload"
  1010. >
  1011. <template slot="excelTemplate">
  1012. <el-button type="primary" @click="derivation">
  1013. 点击下载<i class="el-icon-download el-icon--right"></i>
  1014. </el-button>
  1015. </template>
  1016. <template slot="date">
  1017. <span>
  1018. {{ time }}
  1019. </span>
  1020. </template>
  1021. </avue-form>
  1022. <p style="text-align: center;color: #DC0505">
  1023. 温馨提示 第一次导入时请先下载模板
  1024. </p>
  1025. </el-dialog>
  1026. </basic-container>
  1027. <containerTitle title="导入附件记录"></containerTitle>
  1028. <basic-container>
  1029. <avue-crud
  1030. :data="annexData"
  1031. :option="annexOption"
  1032. :page.sync="annexPage"
  1033. :table-loading="annexLoading"
  1034. @current-change="currentannexChange"
  1035. @size-change="sizeannexChange"
  1036. @saveColumn="saveannexColumn"
  1037. @refresh-change="refreshannexChange"
  1038. :cell-style="cellStyle"
  1039. >
  1040. <template slot-scope="{ row, index }" slot="menu">
  1041. <el-button
  1042. type="text"
  1043. size="small"
  1044. @click.stop="rowDownload(row, index)"
  1045. >
  1046. 下载
  1047. </el-button>
  1048. </template>
  1049. </avue-crud>
  1050. </basic-container>
  1051. <report-dialog
  1052. :switchDialog="switchDialog"
  1053. :reportId="form.id"
  1054. reportName="高中部"
  1055. @onClose="onClose()"
  1056. ></report-dialog>
  1057. <el-dialog
  1058. title="温馨提示"
  1059. :visible.sync="dialogVisible"
  1060. width="70%"
  1061. :before-close="handleClose"
  1062. append-to-body
  1063. class="abnormal"
  1064. >
  1065. <span>
  1066. <avue-crud :data="auditList" :option="auditOption">
  1067. <template slot="menuLeft">
  1068. <el-button type="info" size="small" @click.stop="exportAbnormal()"
  1069. >导出
  1070. </el-button>
  1071. </template>
  1072. </avue-crud></span
  1073. >
  1074. <span slot="footer" class="dialog-footer">
  1075. <el-button @click="dialogVisible = false">关闭</el-button>
  1076. </span>
  1077. </el-dialog>
  1078. </div>
  1079. </div>
  1080. </template>
  1081. <script>
  1082. import { getToken } from "@/util/auth";
  1083. import { dateFormat } from "@/util/date";
  1084. import {
  1085. detail,
  1086. copyDetail,
  1087. submit,
  1088. delItem,
  1089. itemAnnex,
  1090. itemDetail,
  1091. pleaseCheck,
  1092. calculate,
  1093. calculate2
  1094. } from "@/api/salaryManagement/primarySchool";
  1095. import { numCal } from "@/util/calculate";
  1096. import { optionList, auditOption } from "./js/optionList";
  1097. import reportDialog from "@/components/report-dialog/main";
  1098. export default {
  1099. name: "detailsPage",
  1100. data() {
  1101. return {
  1102. time: "",
  1103. dialogVisible: false,
  1104. switchDialog: false,
  1105. annexLoading: false,
  1106. crudForm: {},
  1107. excelBox: false,
  1108. loading: false,
  1109. allloading: false,
  1110. xcelLoading: false,
  1111. loadingBtn: false,
  1112. excelForm: {
  1113. type: "1"
  1114. },
  1115. excelOption: {
  1116. submitBtn: false,
  1117. emptyBtn: false,
  1118. column: [
  1119. {
  1120. label: "导入类型",
  1121. prop: "type",
  1122. type: "select",
  1123. dicUrl: "/api/blade-system/dict-biz/dictionary?code=import_type",
  1124. props: {
  1125. label: "dictValue",
  1126. value: "dictKey"
  1127. },
  1128. row: true,
  1129. span: 12
  1130. },
  1131. {
  1132. label: "模板下载",
  1133. prop: "excelTemplate",
  1134. formslot: true,
  1135. span: 10
  1136. },
  1137. {
  1138. label: "当前时间",
  1139. prop: "date",
  1140. span: 13
  1141. },
  1142. {
  1143. label: "模板上传",
  1144. prop: "excelFile",
  1145. type: "upload",
  1146. drag: true,
  1147. loadText: "模板上传中,请稍等",
  1148. span: 24,
  1149. propsHttp: {
  1150. res: "data"
  1151. },
  1152. tip: "请上传 .xls,.xlsx 标准格式文件",
  1153. action: "/api/blade-school/salaryitem/import/workloadExcel",
  1154. disabled: false
  1155. }
  1156. ]
  1157. },
  1158. form: {},
  1159. dataList: [],
  1160. page: {
  1161. pageSize: 20,
  1162. currentPage: 1,
  1163. total: 0,
  1164. pageSizes: [
  1165. 10,
  1166. 20,
  1167. 30,
  1168. 40,
  1169. 50,
  1170. 100,
  1171. 150,
  1172. 200,
  1173. 250,
  1174. 300,
  1175. 350,
  1176. 400,
  1177. 450,
  1178. 500
  1179. ]
  1180. },
  1181. drawer: false,
  1182. dic: [
  1183. {
  1184. label: "是",
  1185. value: "是"
  1186. },
  1187. {
  1188. label: "否",
  1189. value: "否"
  1190. }
  1191. ],
  1192. option: {
  1193. menuBtn: false,
  1194. labelWidth: 40,
  1195. column: [
  1196. {
  1197. label: "年",
  1198. prop: "annual",
  1199. type: "year",
  1200. valueFormat: "yyyy",
  1201. rules: [
  1202. {
  1203. required: true,
  1204. message: "",
  1205. trigger: "blur"
  1206. }
  1207. ],
  1208. span: 6
  1209. },
  1210. {
  1211. label: "月",
  1212. prop: "moon",
  1213. type: "select",
  1214. filterable: true,
  1215. dicUrl: "/api/blade-system/dict-biz/dictionary?code=month",
  1216. props: {
  1217. label: "dictValue",
  1218. value: "dictKey"
  1219. },
  1220. span: 6,
  1221. rules: [
  1222. {
  1223. required: true,
  1224. message: "",
  1225. trigger: "blur"
  1226. }
  1227. ],
  1228. change: ({ value }) => {
  1229. if (value) {
  1230. this.optionList.column.forEach(e => {
  1231. if (e.prop == "monthHour") {
  1232. e.label = value + "月份工作量";
  1233. }
  1234. if (e.prop == "monthPrice") {
  1235. e.label = value + "月课时费";
  1236. }
  1237. if (e.prop == "momthWorkloadSalary") {
  1238. e.label = value + "月工作量工资";
  1239. }
  1240. });
  1241. }
  1242. }
  1243. },
  1244. {
  1245. label: "人数",
  1246. prop: "personNumber",
  1247. span: 6,
  1248. disabled: true
  1249. },
  1250. {
  1251. label: "状态",
  1252. prop: "status",
  1253. type: "select",
  1254. span: 6,
  1255. props: {
  1256. label: "name",
  1257. value: "code"
  1258. },
  1259. dicData: [
  1260. {
  1261. name: "录入",
  1262. code: 0
  1263. },
  1264. {
  1265. name: "申请审批",
  1266. code: 1
  1267. },
  1268. {
  1269. name: "审批中",
  1270. code: 2
  1271. },
  1272. {
  1273. name: "审批通过",
  1274. code: 3
  1275. }
  1276. ],
  1277. disabled: true
  1278. },
  1279. {
  1280. label: "备注",
  1281. prop: "remarks",
  1282. type: "textarea",
  1283. span: 24,
  1284. minRows: 2
  1285. }
  1286. ]
  1287. },
  1288. optionList: {},
  1289. exportUrl: "/api/blade-school/salaryitem/export/workloadExcel",
  1290. annexData: [],
  1291. annexOption: {
  1292. align: "center",
  1293. menuAlign: "center",
  1294. addBtn: false,
  1295. border: true,
  1296. index: true,
  1297. viewBtn: false,
  1298. editBtn: false,
  1299. delBtn: false,
  1300. stripe: true,
  1301. menuWidth: 100,
  1302. column: [
  1303. {
  1304. label: "文件类型",
  1305. prop: "fileType",
  1306. overHidden: true
  1307. },
  1308. {
  1309. label: "文件名",
  1310. prop: "cname",
  1311. overHidden: true
  1312. },
  1313. {
  1314. label: "创建时间",
  1315. prop: "createTime",
  1316. overHidden: true
  1317. },
  1318. {
  1319. label: "创建人",
  1320. prop: "createName",
  1321. overHidden: true
  1322. },
  1323. {
  1324. label: "备注",
  1325. prop: "remarks",
  1326. overHidden: true
  1327. }
  1328. ]
  1329. },
  1330. annexPage: {
  1331. pageSize: 10,
  1332. currentPage: 1,
  1333. total: 0,
  1334. pageSizes: [
  1335. 10,
  1336. 20,
  1337. 30,
  1338. 40,
  1339. 50,
  1340. 100,
  1341. 150,
  1342. 200,
  1343. 250,
  1344. 300,
  1345. 350,
  1346. 400,
  1347. 450,
  1348. 500
  1349. ]
  1350. },
  1351. auditList: [],
  1352. auditOption: auditOption
  1353. };
  1354. },
  1355. props: {
  1356. detailData: {
  1357. type: Object
  1358. }
  1359. },
  1360. components: {
  1361. reportDialog
  1362. },
  1363. async created() {
  1364. this.optionList = await this.getColumnData(
  1365. this.getColumnName(113),
  1366. optionList
  1367. );
  1368. if (this.detailData.id) {
  1369. this.getDetail(this.detailData.id);
  1370. }
  1371. if (this.detailData.status == 1) {
  1372. this.$set(this.option, "disabled", true);
  1373. }
  1374. this.optionList.height = 450;
  1375. this.annexOption.height = 450;
  1376. // this.auditOption.height = 600;
  1377. },
  1378. methods: {
  1379. getTime() {
  1380. setInterval(() => {
  1381. this.time = dateFormat(new Date());
  1382. }, 1000);
  1383. },
  1384. cellStyle() {
  1385. return "padding:0;height:40px;";
  1386. },
  1387. headerCellClassName({ row, column, rowIndex, columnIndex }) {
  1388. if (
  1389. column.property == "basicsSalary" ||
  1390. column.property == "workloadSalary" ||
  1391. column.property == "customizeFour" ||
  1392. column.property == "awardSalary" ||
  1393. column.property == "awardSalary" ||
  1394. column.property == "dutyAllowances" ||
  1395. column.property == "classTeacherSubsidy" ||
  1396. column.property == "subsidy" ||
  1397. column.property == "deductions" ||
  1398. column.property == "salary" ||
  1399. column.property == "fSalary"
  1400. ) {
  1401. return "headerCellClass";
  1402. }
  1403. if (
  1404. column.property == "salaryWithdrawalStandard" ||
  1405. column.property == "rankWithdrawalStandard" ||
  1406. column.property == "customEight" ||
  1407. column.property == "rankStandard" ||
  1408. column.property == "salaryBaseName" ||
  1409. column.property == "workloadSalaryCritertion" ||
  1410. column.property == "virtualWorkloadSalary" ||
  1411. column.property == "doubleCease" ||
  1412. column.property == "dailyAssessmentCriteria" ||
  1413. column.property == "virtualDailyAssessmentCriteria" ||
  1414. column.property == "termPerformanceSalaryName" ||
  1415. column.property == "salaryWithdrawalStandard" ||
  1416. column.property == "rankWithdrawalStandard" ||
  1417. column.property == "rankStandard" ||
  1418. column.property == "salaryBaseName" ||
  1419. column.property == "workloadSalaryCritertion" ||
  1420. column.property == "virtualWorkloadSalary" ||
  1421. column.property == "doubleCease" ||
  1422. column.property == "dailyAssessmentCriteria" ||
  1423. column.property == "virtualDailyAssessmentCriteria" ||
  1424. column.property == "otherCriterion" ||
  1425. column.property == "teacherSubsidy" ||
  1426. column.property == "teacherAssessSubsidy" ||
  1427. column.property == "performanceAwardName" ||
  1428. column.property == "capitalIncreaseName" ||
  1429. column.property == "leadingCadreSubsidyName" ||
  1430. column.property == "assessLeadingCadreSubsidyName" ||
  1431. column.property == "prepareLessonsName" ||
  1432. column.property == "assessPrepareLessonsName" ||
  1433. column.property == "teachingResearchName" ||
  1434. column.property == "assessTeachingResearchName" ||
  1435. column.property == "virtualDoubleCease" ||
  1436. column.property == "schoolAge"
  1437. ) {
  1438. return "headerCellClass2";
  1439. }
  1440. },
  1441. copyDoc() {
  1442. this.$emit("copyOrder", this.form.id);
  1443. },
  1444. getDetail(id) {
  1445. if (this.detailData.status == "copy") {
  1446. this.allloading = true;
  1447. copyDetail(id)
  1448. .then(res => {
  1449. this.form = res.data.data;
  1450. this.getItemDetail();
  1451. })
  1452. .finally(() => {
  1453. this.allloading = false;
  1454. });
  1455. } else {
  1456. detail(id).then(res => {
  1457. this.form = res.data.data;
  1458. this.getItemDetail();
  1459. this.getitemAnnex();
  1460. });
  1461. }
  1462. },
  1463. getItemDetail() {
  1464. const data = {
  1465. pid: this.form.id,
  1466. ...this.search
  1467. };
  1468. this.loading = true;
  1469. itemDetail(this.page.currentPage, this.page.pageSize, data)
  1470. .then(res => {
  1471. this.dataList = res.data.data.records;
  1472. this.page.total = res.data.data.total;
  1473. })
  1474. .finally(() => {
  1475. this.loading = false;
  1476. });
  1477. },
  1478. getitemAnnex() {
  1479. const data = {
  1480. pid: this.form.id
  1481. };
  1482. this.annexLoading = true;
  1483. itemAnnex(this.annexPage.currentPage, this.annexPage.pageSize, data)
  1484. .then(res => {
  1485. this.annexData = res.data.data.records;
  1486. this.annexPage.total = res.data.data.total;
  1487. })
  1488. .finally(() => {
  1489. this.annexLoading = false;
  1490. });
  1491. },
  1492. rowSave(row, done, loading) {
  1493. if (!row.cname) {
  1494. loading();
  1495. return this.$message.error("请完善姓名");
  1496. }
  1497. if (!row.idNumber) {
  1498. loading();
  1499. return this.$message.error("请完善身份证号");
  1500. }
  1501. const arr = [];
  1502. arr.push(row);
  1503. submit({ ...this.form, salaryItemList: arr })
  1504. .then(res => {
  1505. this.$message.success("保存成功");
  1506. this.form = res.data.data;
  1507. this.getItemDetail();
  1508. done();
  1509. })
  1510. .finally(() => {
  1511. loading();
  1512. });
  1513. },
  1514. rowUpdate(row, index, done, loading) {
  1515. if (!row.cname) {
  1516. loading();
  1517. return this.$message.error("请完善姓名");
  1518. }
  1519. if (!row.idNumber) {
  1520. loading();
  1521. return this.$message.error("请完善身份证号");
  1522. }
  1523. const arr = [];
  1524. arr.push(row);
  1525. submit({ ...this.form, salaryType: "高中部", salaryItemList: arr })
  1526. .then(res => {
  1527. this.$message.success("修改成功");
  1528. this.form = res.data.data;
  1529. this.getItemDetail();
  1530. done();
  1531. })
  1532. .finally(() => {
  1533. loading();
  1534. });
  1535. },
  1536. rowCell(row, index) {
  1537. if (row.$cellEdit == true) {
  1538. if (!row.cname) {
  1539. return this.$message.error("请完善姓名");
  1540. }
  1541. if (!row.idNumber) {
  1542. return this.$message.error("请完善身份证号");
  1543. }
  1544. // if (!row.rankStandard) {
  1545. // return this.$message.error("请完善职级标准");
  1546. // }
  1547. const arr = [];
  1548. arr.push(row);
  1549. this.loading = true;
  1550. submit({ ...this.form, salaryItemList: arr })
  1551. .then(res => {
  1552. this.$message.success("保存成功");
  1553. this.form = res.data.data;
  1554. })
  1555. .finally(() => {
  1556. this.loading = false;
  1557. });
  1558. this.$set(row, "$cellEdit", false);
  1559. } else {
  1560. this.$set(row, "$cellEdit", true);
  1561. }
  1562. },
  1563. rowDel(row) {
  1564. this.$confirm("确定删除数据?", {
  1565. confirmButtonText: "确定",
  1566. cancelButtonText: "取消",
  1567. type: "warning"
  1568. }).then(() => {
  1569. if (row.id) {
  1570. delItem(row.id).then(res => {
  1571. this.$message({
  1572. type: "success",
  1573. message: "删除成功!"
  1574. });
  1575. this.getItemDetail();
  1576. });
  1577. } else {
  1578. this.$message({
  1579. type: "success",
  1580. message: "删除成功!"
  1581. });
  1582. this.dataList.splice(row.$index, 1);
  1583. }
  1584. });
  1585. },
  1586. rowDownload(row) {
  1587. window.open(`${row.url}?${this.website.tokenHeader}=${getToken()}`);
  1588. },
  1589. searchChange(params, done) {
  1590. if (!this.form.id) {
  1591. done();
  1592. return this.$message.error("请保存数据");
  1593. }
  1594. this.getItemDetail();
  1595. done();
  1596. },
  1597. currentChange(val) {
  1598. this.page.currentPage = val;
  1599. this.getItemDetail();
  1600. },
  1601. sizeChange(val) {
  1602. this.page.currentPage = 1;
  1603. this.page.pageSize = val;
  1604. this.getItemDetail();
  1605. },
  1606. refreshChange() {
  1607. this.getItemDetail();
  1608. },
  1609. currentannexChange(val) {
  1610. this.annexPage.currentPage = val;
  1611. this.getitemAnnex();
  1612. },
  1613. sizeannexChange(val) {
  1614. this.annexPage.currentPage = 1;
  1615. this.annexPage.pageSize = val;
  1616. this.getitemAnnex();
  1617. },
  1618. refreshannexChange() {
  1619. this.getitemAnnex();
  1620. },
  1621. uploadAfter(res, done, loading, column) {
  1622. this.excelBox = false;
  1623. // this.$message.success("导入成功!");
  1624. this.getItemDetail();
  1625. this.getitemAnnex();
  1626. done();
  1627. },
  1628. //修改提交触发
  1629. editCustomer() {
  1630. this.$refs["form"].validate((valid, done) => {
  1631. done();
  1632. if (valid) {
  1633. for (let i = 0; i < this.dataList.length; i++) {
  1634. if (!this.dataList[i].cname) {
  1635. return this.$message.error(
  1636. "请完善第" + Number(1 + i) + "行的姓名"
  1637. );
  1638. }
  1639. if (!this.dataList[i].idNumber) {
  1640. return this.$message.error(
  1641. "请完善第" + Number(1 + i) + "行的身份证号"
  1642. );
  1643. }
  1644. if (!this.dataList[i].rankStandard) {
  1645. return this.$message.error(
  1646. "请完善第" + Number(1 + i) + "行的职级标准"
  1647. );
  1648. }
  1649. }
  1650. this.loadingBtn = true;
  1651. submit({
  1652. ...this.form,
  1653. salaryType: "高中部",
  1654. salaryItemList: this.dataList
  1655. })
  1656. .then(res => {
  1657. this.$message.success("保存成功");
  1658. this.form = res.data.data;
  1659. this.getItemDetail();
  1660. })
  1661. .finally(() => {
  1662. this.loadingBtn = false;
  1663. });
  1664. } else {
  1665. return false;
  1666. }
  1667. });
  1668. },
  1669. derivation() {
  1670. if (!this.excelForm.type) {
  1671. return this.$message.error("请选择导入类型");
  1672. }
  1673. if (!this.exportUrl) {
  1674. return this.$message.error("暂无模板文件");
  1675. }
  1676. window.open(
  1677. `${this.exportUrl}?${this.website.tokenHeader}=${getToken()}`
  1678. );
  1679. },
  1680. openExport() {
  1681. if (!this.form.id) {
  1682. return this.$message.error("请先保存数据");
  1683. }
  1684. window.open(
  1685. `/api/blade-school/salaryitem/export/teacher?${
  1686. this.website.tokenHeader
  1687. }=${getToken()}&pid=${this.form.id}`
  1688. );
  1689. },
  1690. calculate() {
  1691. if (!this.form.id) {
  1692. return this.$message.error("请先保存数据");
  1693. }
  1694. this.loading = true;
  1695. calculate({ pid: this.form.id })
  1696. .then(res => {
  1697. if (res.data.code == "200") {
  1698. this.getItemDetail();
  1699. }
  1700. })
  1701. .finally(() => {
  1702. this.loading = false;
  1703. });
  1704. },
  1705. calculate2() {
  1706. // return this.$message.error("正在开发中");
  1707. if (!this.form.id) {
  1708. return this.$message.error("请先保存数据");
  1709. }
  1710. this.loading = true;
  1711. calculate2({ inSection: "高中部", pid: this.form.id })
  1712. .then(res => {
  1713. if (res.data.code == "200") {
  1714. this.getItemDetail();
  1715. }
  1716. })
  1717. .finally(() => {
  1718. this.loading = false;
  1719. });
  1720. },
  1721. importExcel() {
  1722. if (!this.form.id) {
  1723. return this.$message.error("请先保存数据");
  1724. }
  1725. this.excelOption.column.forEach(e => {
  1726. if (e.prop == "excelFile") {
  1727. e.data = {
  1728. id: this.form.id
  1729. };
  1730. }
  1731. });
  1732. this.excelBox = true;
  1733. this.getTime();
  1734. },
  1735. //导出全部
  1736. exportAll() {
  1737. let opt = {
  1738. title: "工资条",
  1739. column: this.optionList.column,
  1740. data: this.dataList
  1741. };
  1742. this.$Export.excel({
  1743. title: opt.title,
  1744. columns: opt.column,
  1745. data: opt.data
  1746. });
  1747. },
  1748. salaryAdd(row) {
  1749. // 1. 基础工资 = +M153(校龄工资)+N153(增资)+O153(学历工资)+Q153(职级工资)+L153(履约奖)+R153(工资基数)
  1750. row.basicsSalary = Number(
  1751. numCal(row.schoolAgeSalary) +
  1752. numCal(row.capitalIncrease) +
  1753. numCal(row.educationSalary) +
  1754. numCal(row.rankSalary) +
  1755. numCal(row.salaryBase) +
  1756. numCal(row.performanceAward)
  1757. ).toFixed(2);
  1758. //2. 工作量工资 = 月份工作量工资+代课工作量工资+双休日工作量工资+工作量工资1+…+工作量工资5-虚拟工作量工资标准-虚拟双休日工作量工资标准
  1759. row.workloadSalary = Number(
  1760. numCal(row.momthWorkloadSalary) +
  1761. numCal(row.customTwo) +
  1762. numCal(row.doubleMoney) +
  1763. numCal(row.customThree) +
  1764. numCal(row.customFour) +
  1765. numCal(row.customFive) +
  1766. numCal(row.customSix) +
  1767. numCal(row.customSeven) -
  1768. numCal(row.virtualDailyAssessmentCriteria) -
  1769. numCal(row.virtualDoubleCease)
  1770. ).toFixed(2);
  1771. //3.日常考核工资 =日常考核工资-虚拟日常考核标准
  1772. row.dailyAssessmentSalary = Number(
  1773. numCal(row.dailyAssessmentSalary) -
  1774. numCal(row.virtualDailyAssessmentCriteria)
  1775. ).toFixed(2);
  1776. // 4.绩效工资=学期绩效工资+学期绩效工资1+..+学期绩效工资5
  1777. row.customizeFour = Number(
  1778. numCal(row.termPerformanceSalary) +
  1779. numCal(row.customNine) +
  1780. numCal(row.customize) +
  1781. numCal(row.customizeOne) +
  1782. numCal(row.customizeTwo) +
  1783. numCal(row.customizeThree)
  1784. ).toFixed(2);
  1785. // 5.奖励工资=奖励1+…+奖励10
  1786. row.awardSalary = Number(
  1787. numCal(row.customAward) +
  1788. numCal(row.customAwardOne) +
  1789. numCal(row.customAwardTwo) +
  1790. numCal(row.customAwardThree) +
  1791. numCal(row.customAwardFour) +
  1792. numCal(row.customAwardFive) +
  1793. numCal(row.customAwardSix) +
  1794. numCal(row.customAwardSeven) +
  1795. numCal(row.customAwardEight) +
  1796. numCal(row.customAwardNine)
  1797. ).toFixed(2);
  1798. // 6.职务津贴=领导干部补贴+领导干部考核补贴+备课组长+备课组长考核补贴+教研组长+教研组长考核补贴
  1799. row.dutyAllowances = Number(
  1800. numCal(row.leadingCadreSubsidy) +
  1801. numCal(row.customizeFive) +
  1802. numCal(row.prepareLessons) +
  1803. numCal(row.customizeSix) +
  1804. numCal(row.teachingResearch) +
  1805. numCal(row.customizeSeven)
  1806. ).toFixed(2);
  1807. // 7.班主任津贴=班主任补贴+班额津贴-校车考核-班级微信群考核-财务考核+班主任考核津贴
  1808. row.classTeacherSubsidy = Number(
  1809. numCal(row.classTeacherFee) +
  1810. numCal(row.classes) -
  1811. numCal(row.adjustTheBalance) -
  1812. numCal(row.payrollCredit) -
  1813. numCal(row.paid) +
  1814. numCal(row.customizeEight)
  1815. ).toFixed(2);
  1816. // 8.补贴项=微信+产假工资+周末工作量工资+补贴1+…+补贴10
  1817. row.subsidy = Number(
  1818. numCal(row.wx) +
  1819. numCal(row.maternityLeaveSalary) +
  1820. numCal(row.overtimeAtWeekend) +
  1821. numCal(row.yearUpPerformance) +
  1822. numCal(row.yearDownPerformance) +
  1823. numCal(row.cadreAllowanceReservation) +
  1824. numCal(row.vacationOvertimePay) +
  1825. numCal(row.newPostTrain) +
  1826. numCal(row.winningPrize) +
  1827. numCal(row.classMinister) +
  1828. numCal(row.monthViceClassFee) +
  1829. numCal(row.safetyFees) +
  1830. numCal(row.reserveReplacement)
  1831. ).toFixed(2);
  1832. // 9.扣除项=出勤+督查+超额电话费+学习强国+宿舍管理费+生育津贴+扣除1+…+扣除10
  1833. row.deductions = Number(
  1834. numCal(row.attendance) +
  1835. numCal(row.inspectorFines) +
  1836. numCal(row.telephoneBill) +
  1837. numCal(row.learningPower) +
  1838. numCal(row.dormitoryManagementFee) +
  1839. numCal(row.childbirthAllowance) +
  1840. numCal(row.ribbonOne) +
  1841. numCal(row.ribbonTwo) +
  1842. numCal(row.ribbonThree) +
  1843. numCal(row.ribbonFour) +
  1844. numCal(row.ribbonFive) +
  1845. numCal(row.ribbonSix) +
  1846. numCal(row.ribbonSeven) +
  1847. numCal(row.ribbonEight) +
  1848. numCal(row.ribbonNine) +
  1849. numCal(row.pauseNoPay)
  1850. ).toFixed(2);
  1851. // 10.应发工资=基本工资+工作量工资+日常考核工资+奖励工资+职务津贴+班主任津贴+补贴项-扣除项+保险(个人部分)+公积金(个人部分).. 大于800 保险(个人部分) 不加
  1852. if (row.enjoyOfficeTreatment == "是") {
  1853. row.salary = Number(
  1854. numCal(row.basicsSalary) +
  1855. numCal(row.workloadSalary) +
  1856. numCal(row.dailyAssessmentSalary) +
  1857. numCal(row.awardSalary) +
  1858. numCal(row.dutyAllowances) +
  1859. numCal(row.classTeacherSubsidy) +
  1860. numCal(row.subsidy) -
  1861. numCal(row.deductions) +
  1862. numCal(row.reservedFundsPersonage)
  1863. ).toFixed(2);
  1864. } else {
  1865. row.salary = Number(
  1866. numCal(row.basicsSalary) +
  1867. numCal(row.workloadSalary) +
  1868. numCal(row.dailyAssessmentSalary) +
  1869. numCal(row.awardSalary) +
  1870. numCal(row.dutyAllowances) +
  1871. numCal(row.classTeacherSubsidy) +
  1872. numCal(row.subsidy) -
  1873. numCal(row.deductions) +
  1874. numCal(row.insurancePersonage) +
  1875. numCal(row.reservedFundsPersonage)
  1876. ).toFixed(2);
  1877. }
  1878. // 11.实发工资=应发工资-个人所得税-个人保险-公积金个人
  1879. row.fSalary = Number(
  1880. numCal(row.salary) -
  1881. numCal(row.personageTaxes) -
  1882. numCal(row.insurancePersonage) -
  1883. numCal(row.reservedFundsPersonage)
  1884. ).toFixed(2);
  1885. },
  1886. //导出工资条
  1887. exportSalary() {
  1888. let data = [];
  1889. for (let item in this.optionList.column) {
  1890. switch (this.optionList.column[item].prop) {
  1891. case "salaryBase":
  1892. data.push(this.optionList.column[item]);
  1893. break;
  1894. case "workloadSalary":
  1895. data.push(this.optionList.column[item]);
  1896. break;
  1897. case "dailyAssessmentSalary":
  1898. data.push(this.optionList.column[item]);
  1899. break;
  1900. case "awardSalary":
  1901. data.push(this.optionList.column[item]);
  1902. break;
  1903. case "dutyAllowances":
  1904. data.push(this.optionList.column[item]);
  1905. break;
  1906. case "classTeacherSubsidy":
  1907. data.push(this.optionList.column[item]);
  1908. break;
  1909. case "subsidy":
  1910. data.push(this.optionList.column[item]);
  1911. break;
  1912. case "deductions":
  1913. data.push(this.optionList.column[item]);
  1914. break;
  1915. case "insuranceUnit":
  1916. data.push(this.optionList.column[item]);
  1917. break;
  1918. case "insurancePersonage":
  1919. data.push(this.optionList.column[item]);
  1920. break;
  1921. case "reservedFundsUnit":
  1922. data.push(this.optionList.column[item]);
  1923. break;
  1924. case "reservedFundsPersonage":
  1925. data.push(this.optionList.column[item]);
  1926. break;
  1927. case "salary":
  1928. data.push(this.optionList.column[item]);
  1929. break;
  1930. case "personageTaxes":
  1931. data.push(this.optionList.column[item]);
  1932. break;
  1933. case "fsalary":
  1934. data.push(this.optionList.column[item]);
  1935. break;
  1936. }
  1937. }
  1938. let opt = {
  1939. title: "工资条",
  1940. column: data,
  1941. data: this.dataList
  1942. };
  1943. this.$Export.excel({
  1944. title: opt.title,
  1945. columns: opt.column,
  1946. data: opt.data
  1947. });
  1948. },
  1949. openEdit() {
  1950. const data = {
  1951. moduleName: "gzb",
  1952. tableName: "primary_school",
  1953. billId: this.form.id,
  1954. no: localStorage.getItem("browserID"),
  1955. billNo: this.form.annual + "-" + this.form.moon
  1956. };
  1957. this.inDetailsKey(this.$route.name, {
  1958. moduleName: "gzb",
  1959. tableName: "primary_school",
  1960. billId: this.form.id,
  1961. billNo: this.form.annual + "-" + this.form.moon
  1962. });
  1963. this.checkLock(data).then(res => {
  1964. if (res.data.code == 200) {
  1965. this.onLock(data).then(res => {
  1966. if (res.data.code == 200) {
  1967. this.detailData.status = 2;
  1968. this.option = this.$options.data().option;
  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: "gzgz",
  1990. url: "/salaryManagement/highSchool/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(113),
  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(113),
  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: "gzb",
  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. default:
  2371. this.findObject(
  2372. this.excelOption.column,
  2373. "excelFile"
  2374. ).disabled = true;
  2375. this.exportUrl = "";
  2376. }
  2377. } else {
  2378. this.findObject(this.excelOption.column, "excelFile").disabled = true;
  2379. }
  2380. }
  2381. }
  2382. };
  2383. </script>
  2384. <style>
  2385. .headerCellClass {
  2386. color: #fff !important;
  2387. background: #a4cf57 !important;
  2388. }
  2389. .headerCellClass2 {
  2390. color: #fff !important;
  2391. background: #a0cfff !important;
  2392. }
  2393. </style>
  2394. <style lang="scss" scoped>
  2395. .trading-form ::v-deep .el-form-item {
  2396. margin-bottom: 4px !important;
  2397. }
  2398. ::v-deep .el-form-item__error {
  2399. display: none !important;
  2400. }
  2401. .schoolupload ::v-deep .el-upload-list {
  2402. display: none;
  2403. }
  2404. .abnormal ::v-deep .el-dialog__body {
  2405. padding: 10px 20px;
  2406. }
  2407. .primarySchoolClass ::v-deep ::-webkit-scrollbar {
  2408. width: 7px;
  2409. height: 10px;
  2410. background-color: transparent;
  2411. }
  2412. .primarySchoolClass ::v-deep ::-webkit-scrollbar-thumb {
  2413. border-radius: 6px;
  2414. background-color: hsla(226, 12%, 71%, 0.2);
  2415. }
  2416. </style>