detailsPage.vue 79 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394
  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. },
  1229. {
  1230. label: "人数",
  1231. prop: "personNumber",
  1232. span: 6,
  1233. disabled: true
  1234. },
  1235. {
  1236. label: "状态",
  1237. prop: "status",
  1238. type: "select",
  1239. span: 6,
  1240. props: {
  1241. label: "name",
  1242. value: "code"
  1243. },
  1244. dicData: [
  1245. {
  1246. name: "录入",
  1247. code: 0
  1248. },
  1249. {
  1250. name: "申请审批",
  1251. code: 1
  1252. },
  1253. {
  1254. name: "审批中",
  1255. code: 2
  1256. },
  1257. {
  1258. name: "审批通过",
  1259. code: 3
  1260. }
  1261. ],
  1262. disabled: true
  1263. },
  1264. {
  1265. label: "备注",
  1266. prop: "remarks",
  1267. type: "textarea",
  1268. span: 24,
  1269. minRows: 2
  1270. }
  1271. ]
  1272. },
  1273. optionList: {},
  1274. exportUrl: "/api/blade-school/salaryitem/export/workloadExcel",
  1275. annexData: [],
  1276. annexOption: {
  1277. align: "center",
  1278. menuAlign: "center",
  1279. addBtn: false,
  1280. border: true,
  1281. index: true,
  1282. viewBtn: false,
  1283. editBtn: false,
  1284. delBtn: false,
  1285. stripe: true,
  1286. menuWidth: 100,
  1287. column: [
  1288. {
  1289. label: "文件类型",
  1290. prop: "fileType",
  1291. overHidden: true
  1292. },
  1293. {
  1294. label: "文件名",
  1295. prop: "cname",
  1296. overHidden: true
  1297. },
  1298. {
  1299. label: "创建时间",
  1300. prop: "createTime",
  1301. overHidden: true
  1302. },
  1303. {
  1304. label: "创建人",
  1305. prop: "createName",
  1306. overHidden: true
  1307. },
  1308. {
  1309. label: "备注",
  1310. prop: "remarks",
  1311. overHidden: true
  1312. }
  1313. ]
  1314. },
  1315. annexPage: {
  1316. pageSize: 10,
  1317. currentPage: 1,
  1318. total: 0,
  1319. pageSizes: [
  1320. 10,
  1321. 20,
  1322. 30,
  1323. 40,
  1324. 50,
  1325. 100,
  1326. 150,
  1327. 200,
  1328. 250,
  1329. 300,
  1330. 350,
  1331. 400,
  1332. 450,
  1333. 500
  1334. ]
  1335. },
  1336. auditList: [],
  1337. auditOption: auditOption
  1338. };
  1339. },
  1340. props: {
  1341. detailData: {
  1342. type: Object
  1343. }
  1344. },
  1345. components: {
  1346. reportDialog
  1347. },
  1348. async created() {
  1349. this.optionList = await this.getColumnData(
  1350. this.getColumnName(115),
  1351. optionList
  1352. );
  1353. if (this.detailData.id) {
  1354. this.getDetail(this.detailData.id);
  1355. }
  1356. if (this.detailData.status == 1) {
  1357. this.$set(this.option, "disabled", true);
  1358. }
  1359. this.optionList.height = 450;
  1360. this.annexOption.height = 450;
  1361. // this.auditOption.height = 600;
  1362. },
  1363. methods: {
  1364. getTime() {
  1365. setInterval(() => {
  1366. this.time = dateFormat(new Date());
  1367. }, 1000);
  1368. },
  1369. cellStyle() {
  1370. return "padding:0;height:40px;";
  1371. },
  1372. headerCellClassName({ row, column, rowIndex, columnIndex }) {
  1373. if (
  1374. column.property == "basicsSalary" ||
  1375. column.property == "workloadSalary" ||
  1376. column.property == "customizeFour" ||
  1377. column.property == "awardSalary" ||
  1378. column.property == "awardSalary" ||
  1379. column.property == "dutyAllowances" ||
  1380. column.property == "classTeacherSubsidy" ||
  1381. column.property == "subsidy" ||
  1382. column.property == "deductions" ||
  1383. column.property == "salary" ||
  1384. column.property == "fSalary"
  1385. ) {
  1386. return "headerCellClass";
  1387. }
  1388. if (
  1389. column.property == "salaryWithdrawalStandard" ||
  1390. column.property == "rankWithdrawalStandard" ||
  1391. column.property == "customEight" ||
  1392. column.property == "rankStandard" ||
  1393. column.property == "salaryBaseName" ||
  1394. column.property == "workloadSalaryCritertion" ||
  1395. column.property == "virtualWorkloadSalary" ||
  1396. column.property == "doubleCease" ||
  1397. column.property == "dailyAssessmentCriteria" ||
  1398. column.property == "virtualDailyAssessmentCriteria" ||
  1399. column.property == "termPerformanceSalaryName" ||
  1400. column.property == "salaryWithdrawalStandard" ||
  1401. column.property == "rankWithdrawalStandard" ||
  1402. column.property == "rankStandard" ||
  1403. column.property == "salaryBaseName" ||
  1404. column.property == "workloadSalaryCritertion" ||
  1405. column.property == "virtualWorkloadSalary" ||
  1406. column.property == "doubleCease" ||
  1407. column.property == "dailyAssessmentCriteria" ||
  1408. column.property == "virtualDailyAssessmentCriteria" ||
  1409. column.property == "otherCriterion" ||
  1410. column.property == "teacherSubsidy" ||
  1411. column.property == "teacherAssessSubsidy" ||
  1412. column.property == "performanceAwardName" ||
  1413. column.property == "capitalIncreaseName" ||
  1414. column.property == "leadingCadreSubsidyName" ||
  1415. column.property == "assessLeadingCadreSubsidyName" ||
  1416. column.property == "prepareLessonsName" ||
  1417. column.property == "assessPrepareLessonsName" ||
  1418. column.property == "teachingResearchName" ||
  1419. column.property == "assessTeachingResearchName" ||
  1420. column.property == "virtualDoubleCease" ||
  1421. column.property == "schoolAge"
  1422. ) {
  1423. return "headerCellClass2";
  1424. }
  1425. },
  1426. copyDoc() {
  1427. this.$emit("copyOrder", this.form.id);
  1428. },
  1429. getDetail(id) {
  1430. if (this.detailData.status == "copy") {
  1431. this.allloading = true;
  1432. copyDetail(id)
  1433. .then(res => {
  1434. this.form = res.data.data;
  1435. this.getItemDetail();
  1436. })
  1437. .finally(() => {
  1438. this.allloading = false;
  1439. });
  1440. } else {
  1441. detail(id).then(res => {
  1442. this.form = res.data.data;
  1443. this.getItemDetail();
  1444. this.getitemAnnex();
  1445. });
  1446. }
  1447. },
  1448. getItemDetail() {
  1449. const data = {
  1450. pid: this.form.id,
  1451. ...this.search
  1452. };
  1453. this.loading = true;
  1454. itemDetail(this.page.currentPage, this.page.pageSize, data)
  1455. .then(res => {
  1456. this.dataList = res.data.data.records;
  1457. this.page.total = res.data.data.total;
  1458. })
  1459. .finally(() => {
  1460. this.loading = false;
  1461. });
  1462. },
  1463. getitemAnnex() {
  1464. const data = {
  1465. pid: this.form.id
  1466. };
  1467. this.annexLoading = true;
  1468. itemAnnex(this.annexPage.currentPage, this.annexPage.pageSize, data)
  1469. .then(res => {
  1470. this.annexData = res.data.data.records;
  1471. this.annexPage.total = res.data.data.total;
  1472. })
  1473. .finally(() => {
  1474. this.annexLoading = false;
  1475. });
  1476. },
  1477. rowSave(row, done, loading) {
  1478. if (!row.cname) {
  1479. loading();
  1480. return this.$message.error("请完善姓名");
  1481. }
  1482. if (!row.idNumber) {
  1483. loading();
  1484. return this.$message.error("请完善身份证号");
  1485. }
  1486. const arr = [];
  1487. arr.push(row);
  1488. submit({ ...this.form, salaryItemList: arr })
  1489. .then(res => {
  1490. this.$message.success("保存成功");
  1491. this.form = res.data.data;
  1492. this.getItemDetail();
  1493. done();
  1494. })
  1495. .finally(() => {
  1496. loading();
  1497. });
  1498. },
  1499. rowUpdate(row, index, done, loading) {
  1500. if (!row.cname) {
  1501. loading();
  1502. return this.$message.error("请完善姓名");
  1503. }
  1504. if (!row.idNumber) {
  1505. loading();
  1506. return this.$message.error("请完善身份证号");
  1507. }
  1508. const arr = [];
  1509. arr.push(row);
  1510. submit({ ...this.form, salaryType: "后勤部", salaryItemList: arr })
  1511. .then(res => {
  1512. this.$message.success("修改成功");
  1513. this.form = res.data.data;
  1514. this.getItemDetail();
  1515. done();
  1516. })
  1517. .finally(() => {
  1518. loading();
  1519. });
  1520. },
  1521. rowCell(row, index) {
  1522. if (row.$cellEdit == true) {
  1523. if (!row.cname) {
  1524. return this.$message.error("请完善姓名");
  1525. }
  1526. if (!row.idNumber) {
  1527. return this.$message.error("请完善身份证号");
  1528. }
  1529. // if (!row.rankStandard) {
  1530. // return this.$message.error("请完善职级标准");
  1531. // }
  1532. const arr = [];
  1533. arr.push(row);
  1534. this.loading = true;
  1535. submit({ ...this.form, salaryItemList: arr })
  1536. .then(res => {
  1537. this.$message.success("保存成功");
  1538. this.form = res.data.data;
  1539. })
  1540. .finally(() => {
  1541. this.loading = false;
  1542. });
  1543. this.$set(row, "$cellEdit", false);
  1544. } else {
  1545. this.$set(row, "$cellEdit", true);
  1546. }
  1547. },
  1548. rowDel(row) {
  1549. this.$confirm("确定删除数据?", {
  1550. confirmButtonText: "确定",
  1551. cancelButtonText: "取消",
  1552. type: "warning"
  1553. }).then(() => {
  1554. if (row.id) {
  1555. delItem(row.id).then(res => {
  1556. this.$message({
  1557. type: "success",
  1558. message: "删除成功!"
  1559. });
  1560. this.getItemDetail();
  1561. });
  1562. } else {
  1563. this.$message({
  1564. type: "success",
  1565. message: "删除成功!"
  1566. });
  1567. this.dataList.splice(row.$index, 1);
  1568. }
  1569. });
  1570. },
  1571. rowDownload(row) {
  1572. window.open(`${row.url}?${this.website.tokenHeader}=${getToken()}`);
  1573. },
  1574. searchChange(params, done) {
  1575. if (!this.form.id) {
  1576. done();
  1577. return this.$message.error("请保存数据");
  1578. }
  1579. this.getItemDetail();
  1580. done();
  1581. },
  1582. currentChange(val) {
  1583. this.page.currentPage = val;
  1584. this.getItemDetail();
  1585. },
  1586. sizeChange(val) {
  1587. this.page.currentPage = 1;
  1588. this.page.pageSize = val;
  1589. this.getItemDetail();
  1590. },
  1591. refreshChange() {
  1592. this.getItemDetail();
  1593. },
  1594. currentannexChange(val) {
  1595. this.annexPage.currentPage = val;
  1596. this.getitemAnnex();
  1597. },
  1598. sizeannexChange(val) {
  1599. this.annexPage.currentPage = 1;
  1600. this.annexPage.pageSize = val;
  1601. this.getitemAnnex();
  1602. },
  1603. refreshannexChange() {
  1604. this.getitemAnnex();
  1605. },
  1606. uploadAfter(res, done, loading, column) {
  1607. this.excelBox = false;
  1608. // this.$message.success("导入成功!");
  1609. this.getItemDetail();
  1610. this.getitemAnnex();
  1611. done();
  1612. },
  1613. //修改提交触发
  1614. editCustomer() {
  1615. this.$refs["form"].validate((valid, done) => {
  1616. done();
  1617. if (valid) {
  1618. for (let i = 0; i < this.dataList.length; i++) {
  1619. if (!this.dataList[i].cname) {
  1620. return this.$message.error(
  1621. "请完善第" + Number(1 + i) + "行的姓名"
  1622. );
  1623. }
  1624. if (!this.dataList[i].idNumber) {
  1625. return this.$message.error(
  1626. "请完善第" + Number(1 + i) + "行的身份证号"
  1627. );
  1628. }
  1629. if (!this.dataList[i].rankStandard) {
  1630. return this.$message.error(
  1631. "请完善第" + Number(1 + i) + "行的职级标准"
  1632. );
  1633. }
  1634. }
  1635. this.loadingBtn = true;
  1636. submit({
  1637. ...this.form,
  1638. salaryType: "后勤部",
  1639. salaryItemList: this.dataList
  1640. })
  1641. .then(res => {
  1642. this.$message.success("保存成功");
  1643. this.form = res.data.data;
  1644. this.getItemDetail();
  1645. })
  1646. .finally(() => {
  1647. this.loadingBtn = false;
  1648. });
  1649. } else {
  1650. return false;
  1651. }
  1652. });
  1653. },
  1654. derivation() {
  1655. if (!this.excelForm.type) {
  1656. return this.$message.error("请选择导入类型");
  1657. }
  1658. if (!this.exportUrl) {
  1659. return this.$message.error("暂无模板文件");
  1660. }
  1661. window.open(
  1662. `${this.exportUrl}?${this.website.tokenHeader}=${getToken()}`
  1663. );
  1664. },
  1665. openExport() {
  1666. if (!this.form.id) {
  1667. return this.$message.error("请先保存数据");
  1668. }
  1669. window.open(
  1670. `/api/blade-school/salaryitem/export/teacher?${
  1671. this.website.tokenHeader
  1672. }=${getToken()}&pid=${this.form.id}`
  1673. );
  1674. },
  1675. calculate() {
  1676. if (!this.form.id) {
  1677. return this.$message.error("请先保存数据");
  1678. }
  1679. this.loading = true;
  1680. calculate({ pid: this.form.id })
  1681. .then(res => {
  1682. if (res.data.code == "200") {
  1683. this.getItemDetail();
  1684. }
  1685. })
  1686. .finally(() => {
  1687. this.loading = false;
  1688. });
  1689. },
  1690. calculate2() {
  1691. // return this.$message.error("正在开发中");
  1692. if (!this.form.id) {
  1693. return this.$message.error("请先保存数据");
  1694. }
  1695. this.loading = true;
  1696. calculate2({ inSection: "后勤部", pid: this.form.id })
  1697. .then(res => {
  1698. if (res.data.code == "200") {
  1699. this.getItemDetail();
  1700. }
  1701. })
  1702. .finally(() => {
  1703. this.loading = false;
  1704. });
  1705. },
  1706. importExcel() {
  1707. if (!this.form.id) {
  1708. return this.$message.error("请先保存数据");
  1709. }
  1710. this.excelOption.column.forEach(e => {
  1711. if (e.prop == "excelFile") {
  1712. e.data = {
  1713. id: this.form.id
  1714. };
  1715. }
  1716. });
  1717. this.excelBox = true;
  1718. this.getTime();
  1719. },
  1720. //导出全部
  1721. exportAll() {
  1722. let opt = {
  1723. title: "工资条",
  1724. column: this.optionList.column,
  1725. data: this.dataList
  1726. };
  1727. this.$Export.excel({
  1728. title: opt.title,
  1729. columns: opt.column,
  1730. data: opt.data
  1731. });
  1732. },
  1733. salaryAdd(row) {
  1734. // 1. 基础工资 = +M153(校龄工资)+N153(增资)+O153(学历工资)+Q153(职级工资)+L153(履约奖)+R153(工资基数)
  1735. row.basicsSalary = Number(
  1736. numCal(row.schoolAgeSalary) +
  1737. numCal(row.capitalIncrease) +
  1738. numCal(row.educationSalary) +
  1739. numCal(row.rankSalary) +
  1740. numCal(row.salaryBase) +
  1741. numCal(row.performanceAward)
  1742. ).toFixed(2);
  1743. //2. 工作量工资 = 月份工作量工资+代课工作量工资+双休日工作量工资+工作量工资1+…+工作量工资5-虚拟工作量工资标准-虚拟双休日工作量工资标准
  1744. row.workloadSalary = Number(
  1745. numCal(row.momthWorkloadSalary) +
  1746. numCal(row.customTwo) +
  1747. numCal(row.doubleMoney) +
  1748. numCal(row.customThree) +
  1749. numCal(row.customFour) +
  1750. numCal(row.customFive) +
  1751. numCal(row.customSix) +
  1752. numCal(row.customSeven) -
  1753. numCal(row.virtualDailyAssessmentCriteria) -
  1754. numCal(row.virtualDoubleCease)
  1755. ).toFixed(2);
  1756. //3.日常考核工资 =日常考核工资-虚拟日常考核标准
  1757. row.dailyAssessmentSalary = Number(
  1758. numCal(row.dailyAssessmentSalary) -
  1759. numCal(row.virtualDailyAssessmentCriteria)
  1760. ).toFixed(2);
  1761. // 4.绩效工资=学期绩效工资+学期绩效工资1+..+学期绩效工资5
  1762. row.customizeFour = Number(
  1763. numCal(row.termPerformanceSalary) +
  1764. numCal(row.customNine) +
  1765. numCal(row.customize) +
  1766. numCal(row.customizeOne) +
  1767. numCal(row.customizeTwo) +
  1768. numCal(row.customizeThree)
  1769. ).toFixed(2);
  1770. // 5.奖励工资=奖励1+…+奖励10
  1771. row.awardSalary = Number(
  1772. numCal(row.customAward) +
  1773. numCal(row.customAwardOne) +
  1774. numCal(row.customAwardTwo) +
  1775. numCal(row.customAwardThree) +
  1776. numCal(row.customAwardFour) +
  1777. numCal(row.customAwardFive) +
  1778. numCal(row.customAwardSix) +
  1779. numCal(row.customAwardSeven) +
  1780. numCal(row.customAwardEight) +
  1781. numCal(row.customAwardNine)
  1782. ).toFixed(2);
  1783. // 6.职务津贴=领导干部补贴+领导干部考核补贴+备课组长+备课组长考核补贴+教研组长+教研组长考核补贴
  1784. row.dutyAllowances = Number(
  1785. numCal(row.leadingCadreSubsidy) +
  1786. numCal(row.customizeFive) +
  1787. numCal(row.prepareLessons) +
  1788. numCal(row.customizeSix) +
  1789. numCal(row.teachingResearch) +
  1790. numCal(row.customizeSeven)
  1791. ).toFixed(2);
  1792. // 7.班主任津贴=班主任补贴+班额津贴-校车考核-班级微信群考核-财务考核+班主任考核津贴
  1793. row.classTeacherSubsidy = Number(
  1794. numCal(row.classTeacherFee) +
  1795. numCal(row.classes) -
  1796. numCal(row.adjustTheBalance) -
  1797. numCal(row.payrollCredit) -
  1798. numCal(row.paid) +
  1799. numCal(row.customizeEight)
  1800. ).toFixed(2);
  1801. // 8.补贴项=微信+产假工资+周末工作量工资+补贴1+…+补贴10
  1802. row.subsidy = Number(
  1803. numCal(row.wx) +
  1804. numCal(row.maternityLeaveSalary) +
  1805. numCal(row.overtimeAtWeekend) +
  1806. numCal(row.yearUpPerformance) +
  1807. numCal(row.yearDownPerformance) +
  1808. numCal(row.cadreAllowanceReservation) +
  1809. numCal(row.vacationOvertimePay) +
  1810. numCal(row.newPostTrain) +
  1811. numCal(row.winningPrize) +
  1812. numCal(row.classMinister) +
  1813. numCal(row.monthViceClassFee) +
  1814. numCal(row.safetyFees) +
  1815. numCal(row.reserveReplacement)
  1816. ).toFixed(2);
  1817. // 9.扣除项=出勤+督查+超额电话费+学习强国+宿舍管理费+生育津贴+扣除1+…+扣除10
  1818. row.deductions = Number(
  1819. numCal(row.attendance) +
  1820. numCal(row.inspectorFines) +
  1821. numCal(row.telephoneBill) +
  1822. numCal(row.learningPower) +
  1823. numCal(row.dormitoryManagementFee) +
  1824. numCal(row.childbirthAllowance) +
  1825. numCal(row.ribbonOne) +
  1826. numCal(row.ribbonTwo) +
  1827. numCal(row.ribbonThree) +
  1828. numCal(row.ribbonFour) +
  1829. numCal(row.ribbonFive) +
  1830. numCal(row.ribbonSix) +
  1831. numCal(row.ribbonSeven) +
  1832. numCal(row.ribbonEight) +
  1833. numCal(row.ribbonNine) +
  1834. numCal(row.pauseNoPay)
  1835. ).toFixed(2);
  1836. // 10.应发工资=基本工资+工作量工资+日常考核工资+奖励工资+职务津贴+班主任津贴+补贴项-扣除项+保险(个人部分)+公积金(个人部分).. 大于800 保险(个人部分) 不加
  1837. if (row.enjoyOfficeTreatment == "是") {
  1838. row.salary = Number(
  1839. numCal(row.basicsSalary) +
  1840. numCal(row.workloadSalary) +
  1841. numCal(row.dailyAssessmentSalary) +
  1842. numCal(row.awardSalary) +
  1843. numCal(row.dutyAllowances) +
  1844. numCal(row.classTeacherSubsidy) +
  1845. numCal(row.subsidy) -
  1846. numCal(row.deductions) +
  1847. numCal(row.reservedFundsPersonage)
  1848. ).toFixed(2);
  1849. } else {
  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.insurancePersonage) +
  1860. numCal(row.reservedFundsPersonage)
  1861. ).toFixed(2);
  1862. }
  1863. // 11.实发工资=应发工资-个人所得税-个人保险-公积金个人
  1864. row.fSalary = Number(
  1865. numCal(row.salary) -
  1866. numCal(row.personageTaxes) -
  1867. numCal(row.insurancePersonage) -
  1868. numCal(row.reservedFundsPersonage)
  1869. ).toFixed(2);
  1870. },
  1871. //导出工资条
  1872. exportSalary() {
  1873. let data = [];
  1874. for (let item in this.optionList.column) {
  1875. switch (this.optionList.column[item].prop) {
  1876. case "salaryBase":
  1877. data.push(this.optionList.column[item]);
  1878. break;
  1879. case "workloadSalary":
  1880. data.push(this.optionList.column[item]);
  1881. break;
  1882. case "dailyAssessmentSalary":
  1883. data.push(this.optionList.column[item]);
  1884. break;
  1885. case "awardSalary":
  1886. data.push(this.optionList.column[item]);
  1887. break;
  1888. case "dutyAllowances":
  1889. data.push(this.optionList.column[item]);
  1890. break;
  1891. case "classTeacherSubsidy":
  1892. data.push(this.optionList.column[item]);
  1893. break;
  1894. case "subsidy":
  1895. data.push(this.optionList.column[item]);
  1896. break;
  1897. case "deductions":
  1898. data.push(this.optionList.column[item]);
  1899. break;
  1900. case "insuranceUnit":
  1901. data.push(this.optionList.column[item]);
  1902. break;
  1903. case "insurancePersonage":
  1904. data.push(this.optionList.column[item]);
  1905. break;
  1906. case "reservedFundsUnit":
  1907. data.push(this.optionList.column[item]);
  1908. break;
  1909. case "reservedFundsPersonage":
  1910. data.push(this.optionList.column[item]);
  1911. break;
  1912. case "salary":
  1913. data.push(this.optionList.column[item]);
  1914. break;
  1915. case "personageTaxes":
  1916. data.push(this.optionList.column[item]);
  1917. break;
  1918. case "fsalary":
  1919. data.push(this.optionList.column[item]);
  1920. break;
  1921. }
  1922. }
  1923. let opt = {
  1924. title: "工资条",
  1925. column: data,
  1926. data: this.dataList
  1927. };
  1928. this.$Export.excel({
  1929. title: opt.title,
  1930. columns: opt.column,
  1931. data: opt.data
  1932. });
  1933. },
  1934. openEdit() {
  1935. const data = {
  1936. moduleName: "hqb",
  1937. tableName: "primary_school",
  1938. billId: this.form.id,
  1939. no: localStorage.getItem("browserID"),
  1940. billNo: this.form.annual + "-" + this.form.moon
  1941. };
  1942. this.inDetailsKey(this.$route.name, {
  1943. moduleName: "hqb",
  1944. tableName: "primary_school",
  1945. billId: this.form.id,
  1946. billNo: this.form.annual + "-" + this.form.moon
  1947. });
  1948. this.checkLock(data).then(res => {
  1949. if (res.data.code == 200) {
  1950. this.onLock(data).then(res => {
  1951. if (res.data.code == 200) {
  1952. this.detailData.status = 2;
  1953. this.option = this.$options.data().option;
  1954. }
  1955. });
  1956. }
  1957. });
  1958. },
  1959. openReport() {
  1960. this.switchDialog = !this.switchDialog;
  1961. },
  1962. onClose(val) {
  1963. this.switchDialog = val;
  1964. },
  1965. // 请核
  1966. pleaseCheck() {
  1967. this.$confirm("您确定提交此次申请吗?", {
  1968. confirmButtonText: "确定",
  1969. cancelButtonText: "取消",
  1970. type: "warning"
  1971. }).then(() => {
  1972. const data = {
  1973. id: this.form.id,
  1974. checkType: "hqgz",
  1975. url: "/salaryManagement/logisticsDepartment/index",
  1976. pageStatus: "this.$store.getters.domSaleStatus",
  1977. pageLabel: "后勤部",
  1978. checkFlag: 2
  1979. };
  1980. pleaseCheck(data).then(res => {
  1981. if (res.data.msg == "请核失败") {
  1982. this.dialogVisible = true;
  1983. this.auditList = res.data.data;
  1984. } else {
  1985. this.$message.success("请核成功");
  1986. this.detailData.status = 1;
  1987. this.option.disabled = true;
  1988. this.getDetail(this.form.id);
  1989. }
  1990. });
  1991. });
  1992. },
  1993. handleClose() {
  1994. this.auditList = [];
  1995. this.dialogVisible = false;
  1996. },
  1997. exportAbnormal() {
  1998. window.open(
  1999. `/api//blade-school/salaryitem/export/exception?${
  2000. this.website.tokenHeader
  2001. }=${getToken()}&pid=${this.form.id}`
  2002. );
  2003. },
  2004. async saveColumn() {
  2005. const inSave = await this.saveColumnData(
  2006. this.getColumnName(115),
  2007. this.optionList
  2008. );
  2009. if (inSave) {
  2010. this.$nextTick(() => {
  2011. this.$refs.crud.doLayout();
  2012. });
  2013. this.$message.success("保存成功");
  2014. //关闭窗口
  2015. this.$refs.crud.$refs.dialogColumn.columnBox = false;
  2016. }
  2017. },
  2018. async resetColumn() {
  2019. this.optionList = optionList;
  2020. const inSave = await this.delColumnData(
  2021. this.getColumnName(115),
  2022. optionList
  2023. );
  2024. if (inSave) {
  2025. this.$nextTick(() => {
  2026. this.$refs.crud.doLayout();
  2027. });
  2028. this.$message.success("重置成功");
  2029. this.$refs.crud.$refs.dialogColumn.columnBox = false;
  2030. }
  2031. },
  2032. //返回列表
  2033. backToList() {
  2034. if (this.form.id) {
  2035. this.unLock({
  2036. moduleName: "hqb",
  2037. tableName: "primary_school",
  2038. billId: this.form.id,
  2039. billNo: this.form.annual + "-" + this.form.moon
  2040. });
  2041. }
  2042. this.$emit("goBack");
  2043. this.leaveDetailsKey(this.$route.name);
  2044. }
  2045. },
  2046. watch: {
  2047. "excelForm.type": function(val) {
  2048. if (val) {
  2049. switch (val) {
  2050. case "1":
  2051. this.exportUrl =
  2052. "/api/blade-school/salaryitem/export/workloadExcel";
  2053. this.findObject(this.excelOption.column, "excelFile").action =
  2054. "/api/blade-school/salaryitem/import/workloadExcel";
  2055. this.findObject(
  2056. this.excelOption.column,
  2057. "excelFile"
  2058. ).disabled = false;
  2059. break;
  2060. case "2":
  2061. this.exportUrl =
  2062. "/api/blade-school/salaryitem/export/teacherSubsidy";
  2063. this.findObject(this.excelOption.column, "excelFile").action =
  2064. "/api/blade-school/salaryitem/import/teacherSubsidy";
  2065. this.findObject(
  2066. this.excelOption.column,
  2067. "excelFile"
  2068. ).disabled = false;
  2069. break;
  2070. case "3":
  2071. this.exportUrl =
  2072. "/api/blade-school/salaryitem/export/schoolBusExcel";
  2073. this.findObject(this.excelOption.column, "excelFile").action =
  2074. "/api/blade-school/salaryitem/import/schoolBusExcel";
  2075. this.findObject(
  2076. this.excelOption.column,
  2077. "excelFile"
  2078. ).disabled = false;
  2079. break;
  2080. case "4":
  2081. this.exportUrl =
  2082. "/api/blade-school/salaryitem/export/classWeChatExcel";
  2083. this.findObject(this.excelOption.column, "excelFile").action =
  2084. "/api/blade-school/salaryitem/import/classWeChatExcel";
  2085. this.findObject(
  2086. this.excelOption.column,
  2087. "excelFile"
  2088. ).disabled = false;
  2089. break;
  2090. case "5":
  2091. this.exportUrl = "/api/blade-school/salaryitem/export/fnanceExcel";
  2092. this.findObject(this.excelOption.column, "excelFile").action =
  2093. "/api/blade-school/salaryitem/import/fnanceExcel";
  2094. this.findObject(
  2095. this.excelOption.column,
  2096. "excelFile"
  2097. ).disabled = false;
  2098. break;
  2099. case "6":
  2100. this.exportUrl = "/api/blade-school/salaryitem/export/position";
  2101. this.findObject(this.excelOption.column, "excelFile").action =
  2102. "/api/blade-school/salaryitem/import/position";
  2103. this.findObject(
  2104. this.excelOption.column,
  2105. "excelFile"
  2106. ).disabled = false;
  2107. break;
  2108. case "7":
  2109. this.exportUrl = "/api/blade-school/salaryitem/export/zhaPingExcel";
  2110. this.findObject(this.excelOption.column, "excelFile").action =
  2111. "/api/blade-school/salaryitem/import/zhaPingExcel";
  2112. this.findObject(
  2113. this.excelOption.column,
  2114. "excelFile"
  2115. ).disabled = false;
  2116. break;
  2117. case "8":
  2118. this.exportUrl = "/api/blade-school/salaryitem/export/overtime";
  2119. this.findObject(this.excelOption.column, "excelFile").action =
  2120. "/api/blade-school/salaryitem/import/overtime";
  2121. this.findObject(
  2122. this.excelOption.column,
  2123. "excelFile"
  2124. ).disabled = false;
  2125. break;
  2126. case "9":
  2127. this.exportUrl = "/api/blade-school/salaryitem/export/weChat";
  2128. this.findObject(this.excelOption.column, "excelFile").action =
  2129. "/api/blade-school/salaryitem/import/weChat";
  2130. this.findObject(
  2131. this.excelOption.column,
  2132. "excelFile"
  2133. ).disabled = false;
  2134. break;
  2135. case "10":
  2136. this.exportUrl = "/api/blade-school/salaryitem/export/power";
  2137. this.findObject(this.excelOption.column, "excelFile").action =
  2138. "/api/blade-school/salaryitem/import/power";
  2139. this.findObject(
  2140. this.excelOption.column,
  2141. "excelFile"
  2142. ).disabled = false;
  2143. break;
  2144. case "11":
  2145. this.exportUrl = "/api/blade-school/salaryitem/export/phoneFine";
  2146. this.findObject(this.excelOption.column, "excelFile").action =
  2147. "/api/blade-school/salaryitem/import/phoneFine";
  2148. this.findObject(
  2149. this.excelOption.column,
  2150. "excelFile"
  2151. ).disabled = false;
  2152. break;
  2153. case "12":
  2154. this.exportUrl = "/api/blade-school/salaryitem/export/fineExcel";
  2155. this.findObject(this.excelOption.column, "excelFile").action =
  2156. "/api/blade-school/salaryitem/import/fineExcel";
  2157. this.findObject(
  2158. this.excelOption.column,
  2159. "excelFile"
  2160. ).disabled = false;
  2161. break;
  2162. case "13":
  2163. this.exportUrl =
  2164. "/api/blade-school/salaryitem/export/sanitationFee";
  2165. this.findObject(this.excelOption.column, "excelFile").action =
  2166. "/api/blade-school/salaryitem/import/sanitationFee";
  2167. this.findObject(
  2168. this.excelOption.column,
  2169. "excelFile"
  2170. ).disabled = false;
  2171. break;
  2172. case "14":
  2173. this.exportUrl =
  2174. "/api/blade-school/salaryitem/export/insuranceExcel";
  2175. this.findObject(this.excelOption.column, "excelFile").action =
  2176. "/api/blade-school/salaryitem/import/insuranceExcel";
  2177. this.findObject(
  2178. this.excelOption.column,
  2179. "excelFile"
  2180. ).disabled = false;
  2181. break;
  2182. case "15":
  2183. this.exportUrl =
  2184. "/api/blade-school/salaryitem/export/reservedFunds";
  2185. this.findObject(this.excelOption.column, "excelFile").action =
  2186. "/api/blade-school/salaryitem/import/reservedFunds";
  2187. this.findObject(
  2188. this.excelOption.column,
  2189. "excelFile"
  2190. ).disabled = false;
  2191. break;
  2192. case "16":
  2193. this.exportUrl =
  2194. "/api/blade-school/salaryitem/export/attendanceExcel";
  2195. this.findObject(this.excelOption.column, "excelFile").action =
  2196. "/api/blade-school/salaryitem/import/attendanceExcel";
  2197. this.findObject(
  2198. this.excelOption.column,
  2199. "excelFile"
  2200. ).disabled = false;
  2201. break;
  2202. case "17":
  2203. this.exportUrl =
  2204. "/api/blade-school/salaryitem/export/eomNumberExcel";
  2205. this.findObject(this.excelOption.column, "excelFile").action =
  2206. "/api/blade-school/salaryitem/import/eomNumberExcel";
  2207. this.findObject(
  2208. this.excelOption.column,
  2209. "excelFile"
  2210. ).disabled = false;
  2211. break;
  2212. case "18":
  2213. this.exportUrl = "/api/blade-school/salaryitem/export/payTaxes";
  2214. this.findObject(this.excelOption.column, "excelFile").action =
  2215. "/api/blade-school/salaryitem/import/payTaxes";
  2216. this.findObject(
  2217. this.excelOption.column,
  2218. "excelFile"
  2219. ).disabled = false;
  2220. break;
  2221. case "19":
  2222. this.exportUrl = "/api/blade-school/salaryitem/export/awardExcel";
  2223. this.findObject(this.excelOption.column, "excelFile").action =
  2224. "/api/blade-school/salaryitem/import/awardExcel";
  2225. this.findObject(
  2226. this.excelOption.column,
  2227. "excelFile"
  2228. ).disabled = false;
  2229. break;
  2230. case "20":
  2231. this.exportUrl = "/api/blade-school/salaryitem/export/subsidyExcel";
  2232. this.findObject(this.excelOption.column, "excelFile").action =
  2233. "/api/blade-school/salaryitem/import/subsidyExcel";
  2234. this.findObject(
  2235. this.excelOption.column,
  2236. "excelFile"
  2237. ).disabled = false;
  2238. break;
  2239. case "21":
  2240. this.exportUrl = "/api/blade-school/salaryitem/export/deductExcel";
  2241. this.findObject(this.excelOption.column, "excelFile").action =
  2242. "/api/blade-school/salaryitem/import/deductExcel";
  2243. this.findObject(
  2244. this.excelOption.column,
  2245. "excelFile"
  2246. ).disabled = false;
  2247. break;
  2248. case "22":
  2249. this.exportUrl = "/api/blade-school/salaryitem/export/leadExcel";
  2250. this.findObject(this.excelOption.column, "excelFile").action =
  2251. "/api/blade-school/salaryitem/import/leadExcel";
  2252. this.findObject(
  2253. this.excelOption.column,
  2254. "excelFile"
  2255. ).disabled = false;
  2256. break;
  2257. case "23":
  2258. this.exportUrl =
  2259. "/api/blade-school/salaryitem/export/teamLeaderExcel";
  2260. this.findObject(this.excelOption.column, "excelFile").action =
  2261. "/api/blade-school/salaryitem/import/teamLeaderExcel";
  2262. this.findObject(
  2263. this.excelOption.column,
  2264. "excelFile"
  2265. ).disabled = false;
  2266. break;
  2267. case "24":
  2268. this.exportUrl =
  2269. "/api/blade-school/salaryitem/export/prepareLessonsExcel";
  2270. this.findObject(this.excelOption.column, "excelFile").action =
  2271. "/api/blade-school/salaryitem/import/prepareLessonsExcel";
  2272. this.findObject(
  2273. this.excelOption.column,
  2274. "excelFile"
  2275. ).disabled = false;
  2276. break;
  2277. case "25":
  2278. this.exportUrl =
  2279. "/api/blade-school/salaryitem/export/teachingExcel";
  2280. this.findObject(this.excelOption.column, "excelFile").action =
  2281. "/api/blade-school/salaryitem/import/teachingExcel";
  2282. this.findObject(
  2283. this.excelOption.column,
  2284. "excelFile"
  2285. ).disabled = false;
  2286. break;
  2287. case "26":
  2288. this.exportUrl =
  2289. "/api/blade-school/salaryitem/export/doubleWorkloadExcel";
  2290. this.findObject(this.excelOption.column, "excelFile").action =
  2291. "/api/blade-school/salaryitem/import/doubleWorkloadExcel";
  2292. this.findObject(
  2293. this.excelOption.column,
  2294. "excelFile"
  2295. ).disabled = false;
  2296. break;
  2297. case "27":
  2298. this.exportUrl =
  2299. "/api/blade-school/salaryitem/export/probationExcel";
  2300. this.findObject(this.excelOption.column, "excelFile").action =
  2301. "/api/blade-school/salaryitem/import/probationExcel";
  2302. this.findObject(
  2303. this.excelOption.column,
  2304. "excelFile"
  2305. ).disabled = false;
  2306. break;
  2307. case "28":
  2308. this.exportUrl = "/api/blade-school/salaryitem/export/maternityPay";
  2309. this.findObject(this.excelOption.column, "excelFile").action =
  2310. "/api/blade-school/salaryitem/import/maternityPay";
  2311. this.findObject(
  2312. this.excelOption.column,
  2313. "excelFile"
  2314. ).disabled = false;
  2315. break;
  2316. case "29":
  2317. this.exportUrl = "/api/blade-school/salaryitem/export/woChenGeld";
  2318. this.findObject(this.excelOption.column, "excelFile").action =
  2319. "/api/blade-school/salaryitem/import/woChenGeld";
  2320. this.findObject(
  2321. this.excelOption.column,
  2322. "excelFile"
  2323. ).disabled = false;
  2324. break;
  2325. case "30":
  2326. this.exportUrl =
  2327. "/api/blade-school/salaryitem/export/customWorkload";
  2328. this.findObject(this.excelOption.column, "excelFile").action =
  2329. "/api/blade-school/salaryitem/import/customWorkload";
  2330. this.findObject(
  2331. this.excelOption.column,
  2332. "excelFile"
  2333. ).disabled = false;
  2334. break;
  2335. case "31":
  2336. this.exportUrl =
  2337. "/api/blade-school/salaryitem/export/staffInformation";
  2338. this.findObject(this.excelOption.column, "excelFile").action =
  2339. "/api/blade-school/salaryitem/import/staffInformation";
  2340. this.findObject(
  2341. this.excelOption.column,
  2342. "excelFile"
  2343. ).disabled = false;
  2344. break;
  2345. default:
  2346. this.findObject(
  2347. this.excelOption.column,
  2348. "excelFile"
  2349. ).disabled = true;
  2350. this.exportUrl = "";
  2351. }
  2352. } else {
  2353. this.findObject(this.excelOption.column, "excelFile").disabled = true;
  2354. }
  2355. }
  2356. }
  2357. };
  2358. </script>
  2359. <style>
  2360. .headerCellClass {
  2361. color: #fff !important;
  2362. background: #a4cf57 !important;
  2363. }
  2364. .headerCellClass2 {
  2365. color: #fff !important;
  2366. background: #a0cfff !important;
  2367. }
  2368. </style>
  2369. <style lang="scss" scoped>
  2370. .trading-form ::v-deep .el-form-item {
  2371. margin-bottom: 4px !important;
  2372. }
  2373. ::v-deep .el-form-item__error {
  2374. display: none !important;
  2375. }
  2376. .schoolupload ::v-deep .el-upload-list {
  2377. display: none;
  2378. }
  2379. .abnormal ::v-deep .el-dialog__body {
  2380. padding: 10px 20px;
  2381. }
  2382. .primarySchoolClass ::v-deep ::-webkit-scrollbar {
  2383. width: 7px;
  2384. height: 10px;
  2385. background-color: transparent;
  2386. }
  2387. .primarySchoolClass ::v-deep ::-webkit-scrollbar-thumb {
  2388. border-radius: 6px;
  2389. background-color: hsla(226, 12%, 71%, 0.2);
  2390. }
  2391. </style>