detailsPage.vue 81 KB

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