index.vue 69 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118
  1. <template>
  2. <div class="m-container">
  3. <h2>
  4. <div class="squrt"></div>
  5. 报表中心
  6. </h2>
  7. <div class="m-core">
  8. <el-collapse v-model="activeName" class="formCollapse">
  9. <el-collapse-item
  10. name="1"
  11. v-if="
  12. $helpers.permission('export/musicGroupRegister') ||
  13. $helpers.permission('export/musicGroupNormalStudentNum') ||
  14. $helpers.permission('export/exportStudentAttendances') ||
  15. $helpers.permission('export/cloudStudyStudentTrainData')
  16. "
  17. >
  18. <template slot="title">
  19. <p class="wrapTitle">教务信息</p>
  20. </template>
  21. <div class="m-wrap" v-permission="'export/musicGroupRegister'">
  22. <div class="title">乐团招生汇总:</div>
  23. <select-all
  24. v-model.trim="organIdList"
  25. class="organSelect"
  26. style="width: 100%"
  27. filterable
  28. placeholder="请选择分部"
  29. multiple
  30. clearable
  31. >
  32. <el-option
  33. v-for="(item, index) in selects.branchs"
  34. :key="index"
  35. :label="item.name"
  36. :value="item.id"
  37. ></el-option>
  38. </select-all>
  39. <!-- <el-button
  40. style="margin-left: 10px"
  41. type="primary"
  42. @click="exportMusicGroup"
  43. >导出</el-button
  44. > -->
  45. <ExportChiose
  46. style="margin-left: 10px"
  47. ExportEnum="MUSIC_GROUP_REGISTER"
  48. :exportData="{ organIds: this.organIdList.join(',') }"
  49. fileName="招生情况汇总表"
  50. errorMsg="请至少选择一个分部"
  51. :flag="this.organIdList.length < 1"
  52. />
  53. <el-tooltip placement="top" popper-class="mTooltip">
  54. <div slot="content">
  55. 请选择分部后,导出招生情况汇总表,分部可多选
  56. </div>
  57. <i
  58. class="el-icon-question micon el-tooltip"
  59. v-permission="'export/musicGroupRegister'"
  60. style="font-size: 18px; color: #f56c6c"
  61. ></i>
  62. </el-tooltip>
  63. </div>
  64. <div
  65. class="m-wrap"
  66. v-permission="'export/musicGroupNormalStudentNum'"
  67. >
  68. <div class="title">乐团在读人数:</div>
  69. <select-all
  70. v-model.trim="musicTeamNum"
  71. class="organSelect"
  72. style="width: 100%"
  73. filterable
  74. multiple
  75. placeholder="请选择分部"
  76. clearable
  77. >
  78. <el-option
  79. v-for="(item, index) in selects.branchs"
  80. :key="index"
  81. :label="item.name"
  82. :value="item.id"
  83. ></el-option>
  84. </select-all>
  85. <ExportChiose
  86. style="margin-left: 10px"
  87. ExportEnum="MUSIC_GROUP_NORMAL_STUDENT_NUM"
  88. :exportData="{ organIds: this.musicTeamNum.join(',') }"
  89. fileName="乐团在读人数"
  90. errorMsg="请至少选择一个分部"
  91. />
  92. <el-tooltip placement="top" popper-class="mTooltip">
  93. <div slot="content">请选择分部后,导出乐团在读人数信息</div>
  94. <i
  95. class="el-icon-question micon el-tooltip"
  96. style="font-size: 18px; color: #f56c6c"
  97. ></i>
  98. </el-tooltip>
  99. </div>
  100. <div class="m-wrap" v-permission="'export/exportStudentAttendances'">
  101. <div class="title">学生考勤:</div>
  102. <select-all
  103. v-model.trim="attendanceOrganId"
  104. class="organSelect"
  105. style="width: 100%"
  106. filterable
  107. multiple
  108. placeholder="请选择分部"
  109. clearable
  110. >
  111. <el-option
  112. v-for="(item, index) in selects.branchs"
  113. :key="index"
  114. :label="item.name"
  115. :value="item.id"
  116. ></el-option>
  117. </select-all>
  118. <el-select
  119. v-model.trim="attendanceCourseType"
  120. class="organSelect"
  121. style="margin-left: 15px; width: 100%"
  122. filterable
  123. placeholder="请选择课程类型"
  124. >
  125. <el-option
  126. v-for="(item, index) in courseListType"
  127. :key="index"
  128. :label="item.label"
  129. :value="item.value"
  130. ></el-option>
  131. </el-select>
  132. <el-date-picker
  133. v-model.trim="timer"
  134. style="width: 360px; margin-left: 15px"
  135. type="daterange"
  136. value-format="yyyy-MM-dd"
  137. range-separator="至"
  138. start-placeholder="上课开始日期"
  139. end-placeholder="上课结束日期"
  140. :picker-options="{
  141. firstDayOfWeek: 1
  142. }"
  143. ></el-date-picker>
  144. <!-- <el-button
  145. style="margin-left: 10px"
  146. type="primary"
  147. @click="exportAttendance"
  148. >导出</el-button
  149. > -->
  150. <ExportChiose
  151. style="margin-left: 10px"
  152. ExportEnum="EXPORT_STUDENT_ATTENDANCES"
  153. :exportData="exportAttendance"
  154. fileName="学生考勤"
  155. errorMsg="请至少选择一个分部"
  156. />
  157. </div>
  158. <div
  159. class="m-wrap"
  160. v-permission="'export/cloudStudyStudentTrainData'"
  161. >
  162. <div class="title">学练宝学员统计:</div>
  163. <!-- <el-select
  164. v-model.trim="trainOrganId"
  165. class="organSelect"
  166. style="width: 100%"
  167. filterable
  168. placeholder="请选择分部"
  169. clearable
  170. >
  171. <el-option
  172. v-for="(item, index) in selects.branchs"
  173. :key="index"
  174. :label="item.name"
  175. :value="item.id"
  176. ></el-option>
  177. </el-select> -->
  178. <select-all
  179. v-model.trim="trainOrganId"
  180. class="organSelect"
  181. style="width: 100%"
  182. filterable
  183. multiple
  184. placeholder="请选择分部"
  185. clearable
  186. >
  187. <el-option
  188. v-for="(item, index) in selects.branchs"
  189. :key="index"
  190. :label="item.name"
  191. :value="item.id"
  192. ></el-option>
  193. </select-all>
  194. <el-date-picker
  195. v-model.trim="cloudTimer"
  196. style="width: 360px; margin-left: 15px"
  197. type="daterange"
  198. value-format="yyyy-MM-dd"
  199. range-separator="至"
  200. start-placeholder="开始日期"
  201. end-placeholder="结束日期"
  202. :picker-options="{
  203. firstDayOfWeek: 1
  204. }"
  205. ></el-date-picker>
  206. <!-- <el-button
  207. style="margin-left: 10px"
  208. type="primary"
  209. @click="exportTrain"
  210. >导出</el-button
  211. > -->
  212. <ExportChiose
  213. style="margin-left: 10px"
  214. ExportEnum="CLOUD_STUDY_STUDENT_TRAIN_DATA"
  215. :exportData="exportTrain"
  216. fileName="学练宝学员统计"
  217. errorMsg="请至少选择一个分部"
  218. :flag="this.trainOrganId.length < 1"
  219. />
  220. </div>
  221. <!-- 老师使用学练宝数据
  222. -->
  223. <div class="m-wrap" v-permission="'export/teacherCloudTrainingList'">
  224. <div class="title">老师使用学练宝数据:</div>
  225. <select-all
  226. v-model.trim="trainTeacherOrganId"
  227. class="organSelect"
  228. style="width: 100%"
  229. filterable
  230. multiple
  231. placeholder="请选择分部"
  232. clearable
  233. >
  234. <el-option
  235. v-for="(item, index) in selects.branchs"
  236. :key="index"
  237. :label="item.name"
  238. :value="item.id"
  239. ></el-option>
  240. </select-all>
  241. <el-date-picker
  242. v-model.trim="trainTeacherTimer"
  243. style="width: 360px; margin-left: 15px"
  244. type="daterange"
  245. value-format="yyyy-MM-dd"
  246. range-separator="至"
  247. start-placeholder="开始日期"
  248. end-placeholder="结束日期"
  249. :picker-options="pickerOptions"
  250. ></el-date-picker>
  251. <!-- <el-button
  252. style="margin-left: 10px"
  253. type="primary"
  254. @click="exportTeacherTrain"
  255. >导出</el-button
  256. > -->
  257. <ExportChiose
  258. style="margin-left: 10px"
  259. ExportEnum="EXPORT_TEACHER_CLOUD_COURSE_REPORT"
  260. :exportData="exportTeacherTrain"
  261. fileName="老师使用学练宝数据"
  262. errorMsg="请选择分部"
  263. :flag="!this.trainTeacherOrganId"
  264. :isDownList="true"
  265. />
  266. </div>
  267. <!-- -->
  268. </el-collapse-item>
  269. <el-collapse-item
  270. name="2"
  271. v-if="
  272. $helpers.permission('export/teacherDefaultSalary') ||
  273. $helpers.permission('export/studentOrder') ||
  274. $helpers.permission('studentInstrument/export') ||
  275. $helpers.permission('export/studentVipPractice') ||
  276. $helpers.permission('export/exercisesSituation') ||
  277. $helpers.permission('export/exportIndexErrData') ||
  278. $helpers.permission('export/exportMusicGroupCourseList') ||
  279. $helpers.permission('export/EXPORT_INDEX_HISTORY_ERR_DATA') ||
  280. $helpers.permission('export/EXPORT_STUDENT_SUBCOURSE') ||
  281. $helpers.permission('export/EXPORT_TRAINING_STATISTICS') ||
  282. $helpers.permission('export/EXPORT_OPERATING_VISIT_STATISTICS') ||
  283. $helpers.permission('export/CLOUD_COACH_ACTIVATION_DETAILS')
  284. "
  285. >
  286. <template slot="title">
  287. <p class="wrapTitle">运营数据</p>
  288. </template>
  289. <div class="m-wrap" v-permission="'export/teacherDefaultSalary'">
  290. <div class="title">老师默认课酬:</div>
  291. <select-all
  292. v-model.trim="teacherDefaultSalaryOrganId"
  293. class="organSelect"
  294. style="width: 100%"
  295. filterable
  296. placeholder="请选择分部"
  297. multiple
  298. clearable
  299. >
  300. <el-option
  301. v-for="(item, index) in selects.branchs"
  302. :key="index"
  303. :label="item.name"
  304. :value="item.id"
  305. ></el-option>
  306. </select-all>
  307. <!-- <el-button
  308. style="margin-left: 10px"
  309. type="primary"
  310. @click="exportDefaultSalary"
  311. >导出</el-button
  312. > -->
  313. <ExportChiose
  314. style="margin-left: 10px"
  315. ExportEnum="TEACHER_DEFAULT_SALARY"
  316. :exportData="exportDefaultSalary"
  317. fileName="老师默认课酬"
  318. errorMsg="请至少选择一个分部"
  319. />
  320. <el-tooltip placement="top" popper-class="mTooltip">
  321. <div slot="content">请选择分部后,导出老师列表及老师课酬信息</div>
  322. <i
  323. class="el-icon-question micon el-tooltip"
  324. style="font-size: 18px; color: #f56c6c"
  325. v-permission="'export/teacherDefaultSalary'"
  326. ></i>
  327. </el-tooltip>
  328. </div>
  329. <div class="m-wrap" v-permission="'export/studentOrder'">
  330. <div class="title">回款统计:</div>
  331. <select-all
  332. v-model.trim="studentOrganId"
  333. class="organSelect"
  334. style="width: 100%"
  335. filterable
  336. placeholder="请选择分部"
  337. multiple
  338. clearable
  339. >
  340. <el-option
  341. v-for="(item, index) in selects.branchs"
  342. :key="index"
  343. :label="item.name"
  344. :value="item.id"
  345. ></el-option>
  346. </select-all>
  347. <el-date-picker
  348. style="margin-left: 15px"
  349. v-model="studentMonth"
  350. type="month"
  351. placeholder="选择月"
  352. value-format="yyyy-MM-dd"
  353. ></el-date-picker>
  354. <!-- <el-button
  355. style="margin-left: 10px"
  356. type="primary"
  357. @click="exportStudent"
  358. >导出</el-button
  359. > -->
  360. <ExportChiose
  361. style="margin-left: 10px"
  362. ExportEnum="STUDENT_ORDER"
  363. :exportData="exportStudent"
  364. fileName="回款统计"
  365. errorMsg="请选择导出月份"
  366. :flag="!this.studentMonth"
  367. />
  368. <el-tooltip placement="top" popper-class="mTooltip">
  369. <div slot="content">请选择分部和月份,导出回款统计</div>
  370. <i
  371. class="el-icon-question micon el-tooltip"
  372. style="font-size: 18px; color: #f56c6c"
  373. v-permission="'export/studentOrder'"
  374. ></i>
  375. </el-tooltip>
  376. </div>
  377. <div class="m-wrap" v-permission="'studentInstrument/export'">
  378. <div class="title">乐保订单导出:</div>
  379. <el-date-picker
  380. v-model="leBaoTimer"
  381. style="width: 360px"
  382. type="monthrange"
  383. value-format="yyyy-MM-dd"
  384. range-separator="至"
  385. start-placeholder="开始月份"
  386. end-placeholder="结束月份"
  387. >
  388. </el-date-picker>
  389. <!-- <el-button
  390. style="margin-left: 10px"
  391. type="primary"
  392. @click="exportLeBao"
  393. >导出</el-button
  394. > -->
  395. <ExportChiose
  396. style="margin-left: 10px"
  397. ExportEnum="STUDENT_INSTRUMENT"
  398. :exportData="exportLeBao"
  399. fileName="乐保订单"
  400. errorMsg="请选择导出月份"
  401. :flag="!(leBaoTimer && leBaoTimer.length > 1)"
  402. />
  403. <!-- <el-tooltip placement="top"
  404. popper-class="mTooltip">
  405. <div slot="content">
  406. 请选择分部和月份,导出回款统计
  407. </div>
  408. <i class="el-icon-question micon el-tooltip"
  409. style="font-size: 18px; color: #F56C6C"
  410. v-permission="'export/studentOrder'"></i>
  411. </el-tooltip> -->
  412. </div>
  413. <div class="m-wrap" v-permission="'export/studentVipPractice'">
  414. <div class="title">VIP网管课耗导出:</div>
  415. <select-all
  416. v-model.trim="vipOrganId"
  417. class="organSelect"
  418. style="width: 100%"
  419. filterable
  420. placeholder="请选择分部"
  421. clearable
  422. >
  423. <el-option
  424. v-for="(item, index) in selects.branchs"
  425. :key="index"
  426. :label="item.name"
  427. :value="item.id"
  428. ></el-option>
  429. </select-all>
  430. <!-- <el-button
  431. style="margin-left: 10px"
  432. type="primary"
  433. @click="exportVip"
  434. >导出</el-button
  435. > -->
  436. <ExportChiose
  437. style="margin-left: 10px"
  438. ExportEnum="STUDENT_VIP_PRACTICE"
  439. :exportData="exportVip"
  440. fileName="VIP网管课耗"
  441. errorMsg="请选择分部"
  442. :flag="vipOrganId.length <= 0"
  443. :isDownList="true"
  444. />
  445. </div>
  446. <div class="m-wrap" v-permission="'export/VIP_STUDENT_COURSE_MANAGE'">
  447. <div class="title">VIP学员课程管理导出:</div>
  448. <select-all
  449. v-model.trim="VipStudentOrganId"
  450. class="organSelect"
  451. style="width: 100%"
  452. filterable
  453. placeholder="请选择分部"
  454. clearable
  455. >
  456. <el-option
  457. v-for="(item, index) in selects.branchs"
  458. :key="index"
  459. :label="item.name"
  460. :value="item.id"
  461. ></el-option>
  462. </select-all>
  463. <!-- <el-button
  464. style="margin-left: 10px"
  465. type="primary"
  466. @click="exportVipStudent"
  467. >导出</el-button
  468. > -->
  469. <ExportChiose
  470. style="margin-left: 10px"
  471. ExportEnum="VIP_STUDENT_COURSE_MANAGE"
  472. :exportData="exportVipStudent"
  473. fileName="VIP学员课程管理导出"
  474. errorMsg="请选择分部"
  475. :isDownList="true"
  476. />
  477. </div>
  478. <div class="m-wrap" v-permission="'export/exercisesSituation'">
  479. <div class="title">服务指标明细导出:</div>
  480. <select-all
  481. v-model.trim="serviceOrganId"
  482. class="organSelect"
  483. style="width: 100%"
  484. filterable
  485. multiple
  486. placeholder="请选择分部"
  487. clearable
  488. >
  489. <el-option
  490. v-for="(item, index) in selects.branchs"
  491. :key="index"
  492. :label="item.name"
  493. :value="item.id"
  494. ></el-option>
  495. </select-all>
  496. <el-date-picker
  497. v-model.trim="serviceTimer"
  498. style="width: 360px; margin-left: 15px"
  499. type="daterange"
  500. value-format="yyyy-MM-dd"
  501. range-separator="至"
  502. start-placeholder="开始日期"
  503. end-placeholder="结束日期"
  504. :picker-options="{
  505. firstDayOfWeek: 1
  506. }"
  507. ></el-date-picker>
  508. <!-- <el-button
  509. style="margin-left: 10px"
  510. type="primary"
  511. @click="exportDetailService"
  512. >导出</el-button
  513. > -->
  514. <ExportChiose
  515. style="margin-left: 10px"
  516. ExportEnum="EXERCISES_SITUATION"
  517. :exportData="exportDetailService"
  518. fileName="服务指标明细"
  519. errorMsg="请选择导出月份"
  520. />
  521. </div>
  522. <div class="m-wrap" v-permission="'export/exportIndexErrData'">
  523. <div class="title">异常处理数据导出:</div>
  524. <select-all
  525. clearable
  526. filterable
  527. class="organSelect"
  528. v-model="Abnormal.organIds"
  529. multiple
  530. placeholder="请选择分部"
  531. >
  532. <el-option
  533. v-for="(item, index) in selects.branchs"
  534. :key="index"
  535. :label="item.name"
  536. :value="item.id + ''"
  537. ></el-option>
  538. </select-all>
  539. <!-- <el-button
  540. type="primary"
  541. style="margin-left: 10px"
  542. @click="exportAbnormal"
  543. >导出</el-button
  544. > -->
  545. <ExportChiose
  546. style="margin-left: 10px"
  547. ExportEnum="EXPORT_INDEX_HISTORY_ERR_DATA"
  548. :exportData="exportAbnormal"
  549. fileName="异常处理数据导出"
  550. errorMsg="请选择分部"
  551. />
  552. </div>
  553. <!-- <div class="m-wrap" v-permission="'export/STUDENT_VIP_COURSE_INFO'">
  554. <div class="title">VIP课学员课程导出:</div>
  555. <select-all
  556. v-model.trim="vipStudentCourseOrganId"
  557. class="organSelect"
  558. style="width: 100%"
  559. filterable
  560. multiple
  561. placeholder="请选择分部"
  562. clearable
  563. >
  564. <el-option
  565. v-for="(item, index) in selects.branchs"
  566. :key="index"
  567. :label="item.name"
  568. :value="item.id"
  569. ></el-option>
  570. </select-all>
  571. <ExportChiose
  572. style="margin-left: 10px"
  573. ExportEnum="STUDENT_VIP_COURSE_INFO"
  574. :exportData="exportAbnormal"
  575. fileName="VIP课学员课程信息导出"
  576. errorMsg="请选择分部"
  577. :flag="this.vipStudentCourseOrganId.length < 1"
  578. :isDownList="true"
  579. />
  580. </div> -->
  581. <div
  582. class="m-wrap"
  583. v-permission="'export/STUDENT_MUSIC_THEORY_COURSE_INFO'"
  584. >
  585. <div class="title">小组课学员课程导出:</div>
  586. <select-all
  587. v-model.trim="musicStudentCourseOrganId"
  588. class="organSelect"
  589. style="width: 100%"
  590. filterable
  591. multiple
  592. placeholder="请选择分部"
  593. clearable
  594. >
  595. <el-option
  596. v-for="(item, index) in selects.branchs"
  597. :key="index"
  598. :label="item.name"
  599. :value="item.id"
  600. ></el-option>
  601. </select-all>
  602. <ExportChiose
  603. style="margin-left: 10px"
  604. ExportEnum="STUDENT_MUSIC_THEORY_COURSE_INFO"
  605. :exportData="exportAbnormal"
  606. fileName="小组课学员课程信息导出"
  607. errorMsg="请选择分部"
  608. :flag="this.musicStudentCourseOrganId.length < 1"
  609. :isDownList="true"
  610. />
  611. </div>
  612. <div
  613. class="m-wrap"
  614. v-permission="'export/exportMusicGroupCourseList'"
  615. >
  616. <div class="title">乐团数据导出:</div>
  617. <select-all
  618. v-model.trim="teamOrganId"
  619. class="organSelect"
  620. style="width: 100%"
  621. filterable
  622. multiple
  623. placeholder="请选择分部"
  624. clearable
  625. >
  626. <el-option
  627. v-for="(item, index) in selects.branchs"
  628. :key="index"
  629. :label="item.name"
  630. :value="item.id"
  631. ></el-option>
  632. </select-all>
  633. <el-date-picker
  634. v-model.trim="teamTimer"
  635. style="width: 360px; margin-left: 15px"
  636. type="daterange"
  637. value-format="yyyy-MM-dd"
  638. range-separator="至"
  639. start-placeholder="开始日期"
  640. end-placeholder="结束日期"
  641. @change="getWeekTime"
  642. :picker-options="{
  643. firstDayOfWeek: 1
  644. }"
  645. ></el-date-picker>
  646. <el-button
  647. style="margin-left: 10px"
  648. type="primary"
  649. @click="exportMusicGroup"
  650. >导出</el-button
  651. >
  652. <!-- <ExportChiose
  653. style="margin-left: 10px"
  654. ExportEnum="EXERCISES_SITUATION"
  655. :exportData="exportDetailService"
  656. fileName="服务指标明细"
  657. errorMsg="请选择导出月份"
  658. /> -->
  659. </div>
  660. <div class="m-wrap" v-permission="'export/EXPORT_STUDENT_SUBCOURSE'">
  661. <div class="title">活动资格导出:</div>
  662. <select-all
  663. v-model.trim="activeOrganId"
  664. class="organSelect"
  665. style="width: 100%"
  666. filterable
  667. multiple
  668. placeholder="请选择分部"
  669. clearable
  670. >
  671. <el-option
  672. v-for="(item, index) in selects.branchs"
  673. :key="index"
  674. :label="item.name"
  675. :value="item.id"
  676. ></el-option>
  677. </select-all>
  678. <ExportChiose
  679. style="margin-left: 10px"
  680. ExportEnum="EXPORT_STUDENT_SUBCOURSE"
  681. :exportData="exportActive"
  682. fileName="活动资格导出"
  683. errorMsg="请选择分部"
  684. :isDownList="true"
  685. />
  686. </div>
  687. <div class="m-wrap" v-permission="'export/EXPORT_STUDENT_SERVE_INFO'">
  688. <div class="title">乐团学生指标导出:</div>
  689. <select-all
  690. v-model.trim="studentServerOrganId"
  691. class="organSelect"
  692. style="width: 100%"
  693. filterable
  694. multiple
  695. placeholder="请选择分部"
  696. clearable
  697. >
  698. <el-option
  699. v-for="(item, index) in selects.branchs"
  700. :key="index"
  701. :label="item.name"
  702. :value="item.id"
  703. ></el-option>
  704. </select-all>
  705. <el-date-picker
  706. v-model.trim="studentServerTimer"
  707. style="width: 360px; margin-left: 15px"
  708. type="daterange"
  709. value-format="yyyy-MM-dd"
  710. range-separator="至"
  711. start-placeholder="开始日期"
  712. end-placeholder="结束日期"
  713. @change="getStudentWeekTime"
  714. :picker-options="{
  715. firstDayOfWeek: 1
  716. }"
  717. ></el-date-picker>
  718. <ExportChiose
  719. style="margin-left: 10px"
  720. ExportEnum="EXPORT_STUDENT_SERVE_INFO"
  721. :exportData="exportStudentServer"
  722. fileName="乐团学生指标导出"
  723. errorMsg="请选择分部"
  724. :isDownList="false"
  725. />
  726. </div>
  727. <!-- -->
  728. <div
  729. class="m-wrap"
  730. v-permission="'export/EXPORT_TRAINING_STATISTICS'"
  731. >
  732. <div class="title">练习统计导出:</div>
  733. <select-all
  734. v-model.trim="trainingOrganId"
  735. class="organSelect"
  736. style="width: 100%"
  737. filterable
  738. multiple
  739. placeholder="请选择分部"
  740. clearable
  741. >
  742. <el-option
  743. v-for="(item, index) in selects.branchs"
  744. :key="index"
  745. :label="item.name"
  746. :value="item.id"
  747. ></el-option>
  748. </select-all>
  749. <el-date-picker
  750. v-model.trim="trainingTimer"
  751. style="width: 360px; margin-left: 15px"
  752. type="daterange"
  753. value-format="yyyy-MM-dd"
  754. range-separator="至"
  755. start-placeholder="开始日期"
  756. end-placeholder="结束日期"
  757. :picker-options="{
  758. firstDayOfWeek: 1
  759. }"
  760. ></el-date-picker>
  761. <!-- @change="getStudentWeekTime" -->
  762. <ExportChiose
  763. style="margin-left: 10px"
  764. ExportEnum="EXPORT_TRAINING_STATISTICS"
  765. :exportData="exporTtraining"
  766. fileName="练习统计导出"
  767. errorMsg="请选择分部"
  768. :isDownList="true"
  769. />
  770. </div>
  771. <!-- 回访统计导出 -->
  772. <div
  773. class="m-wrap"
  774. v-permission="'export/EXPORT_OPERATING_VISIT_STATISTICS'"
  775. >
  776. <div class="title">回访统计导出:</div>
  777. <el-date-picker
  778. v-model="visitmouth"
  779. type="month"
  780. placeholder="选择月"
  781. value-format="yyyy-MM"
  782. class="organSelect"
  783. ></el-date-picker>
  784. <ExportChiose
  785. style="margin-left: 10px"
  786. ExportEnum="EXPORT_OPERATING_VISIT_STATISTICS"
  787. :exportData="exportVisit"
  788. fileName="回访统计导出"
  789. errorMsg="请选择月份"
  790. :flag="!this.visitmouth"
  791. />
  792. </div>
  793. <div class="m-wrap" v-permission="'export/EXPORT_CLOUD_TEACHER_SUM'">
  794. <div class="title">学练宝统计导出:</div>
  795. <select-all
  796. v-model.trim="yunOrganId"
  797. class="organSelect"
  798. style="width: 100%"
  799. filterable
  800. multiple
  801. placeholder="请选择分部"
  802. clearable
  803. >
  804. <el-option
  805. v-for="(item, index) in selects.branchs"
  806. :key="index"
  807. :label="item.name"
  808. :value="item.id"
  809. ></el-option>
  810. </select-all>
  811. <el-date-picker
  812. v-model.trim="yunTimer"
  813. style="width: 360px; margin-left: 15px"
  814. type="daterange"
  815. value-format="yyyy-MM-dd"
  816. range-separator="至"
  817. start-placeholder="开始日期"
  818. end-placeholder="结束日期"
  819. :clearable="false"
  820. :picker-options="{
  821. firstDayOfWeek: 1
  822. }"
  823. ></el-date-picker>
  824. <!-- @change="getStudentWeekTime" -->
  825. <ExportChiose
  826. style="margin-left: 10px"
  827. ExportEnum="EXPORT_CLOUD_TEACHER_SUM"
  828. :exportData="exporyun"
  829. fileName="学练宝统计导出"
  830. errorMsg="请选择分部"
  831. :isDownList="true"
  832. />
  833. </div>
  834. <div
  835. class="m-wrap"
  836. v-permission="'export/CLOUD_COACH_ACTIVATION_DETAILS'"
  837. >
  838. <div class="title">学练宝激活明细:</div>
  839. <select-all
  840. v-model.trim="cloudAcivationOrganId"
  841. class="organSelect"
  842. style="width: 100%"
  843. filterable
  844. multiple
  845. placeholder="请选择分部"
  846. clearable
  847. >
  848. <el-option
  849. v-for="(item, index) in selects.branchs"
  850. :key="index"
  851. :label="item.name"
  852. :value="item.id"
  853. ></el-option>
  854. </select-all>
  855. <el-date-picker
  856. style="margin-left: 15px"
  857. v-model="expotAcivationMouth"
  858. type="month"
  859. placeholder="选择月"
  860. value-format="yyyy-MM"
  861. class="organSelect"
  862. ></el-date-picker>
  863. <ExportChiose
  864. style="margin-left: 10px"
  865. ExportEnum="CLOUD_COACH_ACTIVATION_DETAILS"
  866. :exportData="expotAcivationDetails"
  867. fileName="学练宝激活明细导出"
  868. errorMsg="请选择分部"
  869. :flag="this.cloudAcivationOrganId.length <= 0"
  870. />
  871. </div>
  872. <!-- <div
  873. class="m-wrap"
  874. v-permission="'export/EXPORT_MUSIC_GROUP_ECHELON_DATA'"
  875. >
  876. <div class="title">乐团梯队数据:</div>
  877. <select-all
  878. v-model.trim="echelonDataOrganId"
  879. class="organSelect"
  880. style="width: 100%"
  881. filterable
  882. multiple
  883. placeholder="请选择分部"
  884. clearable
  885. >
  886. <el-option
  887. v-for="(item, index) in selects.branchs"
  888. :key="index"
  889. :label="item.name"
  890. :value="item.id"
  891. ></el-option>
  892. </select-all>
  893. <ExportChiose
  894. style="margin-left: 10px"
  895. ExportEnum="EXPORT_MUSIC_GROUP_ECHELON_DATA"
  896. :exportData="exportEchelonData"
  897. fileName="乐团梯队数据导出"
  898. errorMsg="请选择分部"
  899. :flag="this.echelonDataOrganId.length <= 0"
  900. :isDownList="true"
  901. />
  902. </div> -->
  903. <div
  904. class="m-wrap"
  905. v-permission="'export/EXPORT_MUSIC_GROUP_NO_COURSE'"
  906. >
  907. <div class="title">乐团未排课时长:</div>
  908. <select-all
  909. v-model.trim="musicGroupNoDataOrganId"
  910. class="organSelect"
  911. style="width: 100%"
  912. filterable
  913. multiple
  914. placeholder="请选择分部"
  915. clearable
  916. >
  917. <el-option
  918. v-for="(item, index) in selects.branchs"
  919. :key="index"
  920. :label="item.name"
  921. :value="item.id"
  922. ></el-option>
  923. </select-all>
  924. <ExportChiose
  925. style="margin-left: 10px"
  926. ExportEnum="EXPORT_MUSIC_GROUP_NO_COURSE"
  927. :exportData="exportMusicGroupNoData"
  928. fileName="乐团未排课时长导出"
  929. errorMsg="请选择分部"
  930. message="您确认导出乐团未排课时长"
  931. :flag="this.musicGroupNoDataOrganId.length <= 0"
  932. />
  933. </div>
  934. <!-- <div class="m-wrap" v-permission="'export/now'">
  935. <div class="title">乐团未排课时长:</div>
  936. <select-all
  937. v-model.trim="musicGroupNoDataOrganId"
  938. class="organSelect"
  939. style="width: 100%"
  940. filterable
  941. multiple
  942. placeholder="请选择分部"
  943. clearable
  944. >
  945. <el-option
  946. v-for="(item, index) in selects.branchs"
  947. :key="index"
  948. :label="item.name"
  949. :value="item.id"
  950. ></el-option>
  951. </select-all>
  952. <ExportChiose
  953. style="margin-left: 10px"
  954. ExportEnum="EXPORT_MUSIC_GROUP_NO_COURSE"
  955. :exportData="exportMusicGroupNoData"
  956. fileName="乐团未排课时长导出"
  957. errorMsg="请选择分部"
  958. :flag="!this.musicGroupNoDataOrganId"
  959. />
  960. </div> -->
  961. </el-collapse-item>
  962. <el-collapse-item
  963. name="3"
  964. v-if="
  965. $helpers.permission('export/teacherSalary') ||
  966. $helpers.permission('export/userCoursesAccount/4388') ||
  967. $helpers.permission('export/userCashAccountDetail/4389') ||
  968. $helpers.permission('multiDataSourceHomeStats/exportPaymentFlow/5289')
  969. "
  970. >
  971. <template slot="title">
  972. <p class="wrapTitle">财务数据</p>
  973. </template>
  974. <div
  975. class="m-wrap"
  976. v-permission="'export/EXPORT_OPERATING_REPORT_NEW'"
  977. >
  978. <div class="title">经营报表导出:</div>
  979. <el-date-picker
  980. v-model="operatingMouth"
  981. type="month"
  982. placeholder="选择月"
  983. value-format="yyyy-MM"
  984. class="organSelect"
  985. ></el-date-picker>
  986. <!-- <el-select v-model.trim="courseScheduleType"
  987. style="marginLeft:10px"
  988. filterable
  989. clearable
  990. multiple
  991. placeholder="课程类型">
  992. <el-option v-for="(item, index) in courseArray"
  993. :key="index"
  994. :label="item.label"
  995. :value="item.value"></el-option>
  996. </el-select> -->
  997. <!-- <el-button
  998. style="margin-left: 10px"
  999. type="primary"
  1000. @click="exportSalar"
  1001. >导出</el-button
  1002. > -->
  1003. <ExportChiose
  1004. style="margin-left: 10px"
  1005. ExportEnum="EXPORT_OPERATING_REPORT_NEW"
  1006. :exportData="exportOperating"
  1007. fileName="经营报表"
  1008. errorMsg="请选择月份"
  1009. :flag="!this.operatingMouth"
  1010. />
  1011. <el-tooltip placement="top" popper-class="mTooltip">
  1012. <div slot="content">将只导出当前选择月份的经营报表。</div>
  1013. <i
  1014. class="el-icon-question micon el-tooltip"
  1015. style="font-size: 18px; color: #f56c6c"
  1016. v-permission="'export/teacherSalary'"
  1017. ></i>
  1018. </el-tooltip>
  1019. </div>
  1020. <div
  1021. class="m-wrap"
  1022. v-permission="'export/EXPORT_OA_SUMMARY_EXPENSES'"
  1023. >
  1024. <div class="title">oa费用汇总:</div>
  1025. <el-date-picker
  1026. v-model="oaCountMouth"
  1027. type="month"
  1028. placeholder="选择月"
  1029. value-format="yyyy-MM"
  1030. class="organSelect"
  1031. ></el-date-picker>
  1032. <ExportChiose
  1033. style="margin-left: 10px"
  1034. ExportEnum="EXPORT_OA_SUMMARY_EXPENSES"
  1035. :exportData="exportOaCount"
  1036. :isDownList="true"
  1037. fileName="oa费用汇总"
  1038. errorMsg="请选择月份"
  1039. :flag="!this.oaCountMouth"
  1040. />
  1041. </div>
  1042. <div
  1043. class="m-wrap"
  1044. v-permission="'export/EXPORT_OA_SUMMARY_EXPENSES_DETAIL'"
  1045. >
  1046. <div class="title">oa费用明细:</div>
  1047. <el-date-picker
  1048. v-model="oaDetailMouth"
  1049. type="month"
  1050. placeholder="选择月"
  1051. value-format="yyyy-MM"
  1052. class="organSelect"
  1053. ></el-date-picker>
  1054. <ExportChiose
  1055. style="margin-left: 10px"
  1056. ExportEnum="EXPORT_OA_SUMMARY_EXPENSES_DETAIL"
  1057. :exportData="exportOaDetail"
  1058. :isDownList="true"
  1059. fileName="oa费用明细"
  1060. errorMsg="请选择月份"
  1061. :flag="!this.oaDetailMouth"
  1062. />
  1063. </div>
  1064. <div
  1065. class="m-wrap"
  1066. v-permission="'export/EXPORT_OPERATING_SUMMARY_INCOME'"
  1067. >
  1068. <div class="title">经营报表收入汇总:</div>
  1069. <el-date-picker
  1070. v-model="reportCountMouth"
  1071. type="month"
  1072. placeholder="选择月"
  1073. value-format="yyyy-MM"
  1074. class="organSelect"
  1075. ></el-date-picker>
  1076. <ExportChiose
  1077. style="margin-left: 10px"
  1078. ExportEnum="EXPORT_OPERATING_SUMMARY_INCOME"
  1079. :exportData="exportCount"
  1080. fileName="经营报表收入汇总"
  1081. :isDownList="true"
  1082. errorMsg="请选择月份"
  1083. :flag="!this.reportCountMouth"
  1084. />
  1085. </div>
  1086. <div class="m-wrap" v-permission="'import/importHumanCost'">
  1087. <div class="title">经营报表外部数据录入:</div>
  1088. <el-upload
  1089. v-permission="'import/importHumanCost'"
  1090. style="display: inline-block; "
  1091. action="/api-web/import/importHumanCost"
  1092. :show-file-list="false"
  1093. :before-upload="reportBeforeUpload"
  1094. accept=".xlsx,.xls"
  1095. :headers="headers"
  1096. :on-error="reportHandleError"
  1097. :on-success="reportHandleSuccess"
  1098. >
  1099. <el-button type="primary">
  1100. 导入
  1101. </el-button>
  1102. </el-upload>
  1103. <el-button
  1104. type="primary"
  1105. @click="downloadTemplateReportOut"
  1106. style="margin-left: 10px;"
  1107. >下载模板</el-button
  1108. >
  1109. </div>
  1110. <div class="m-wrap" v-permission="'export/now'">
  1111. <div class="title">课程收入明细:</div>
  1112. <select-all
  1113. v-model.trim="incomeOrganId"
  1114. class="organSelect"
  1115. style="width: 100%"
  1116. filterable
  1117. multiple
  1118. placeholder="请选择分部"
  1119. clearable
  1120. >
  1121. <el-option
  1122. v-for="(item, index) in selects.branchs"
  1123. :key="index"
  1124. :label="item.name"
  1125. :value="item.id"
  1126. ></el-option>
  1127. </select-all>
  1128. <el-date-picker
  1129. v-model="mouthIncome"
  1130. type="month"
  1131. placeholder="选择月"
  1132. value-format="yyyy-MM"
  1133. style="margin-left: 12px;"
  1134. class="organSelect"
  1135. ></el-date-picker>
  1136. <ExportChiose
  1137. style="margin-left: 10px"
  1138. ExportEnum="EXPORT_COURSE_INCOME"
  1139. :exportData="exportIncome"
  1140. fileName="课程收入明细导出"
  1141. errorMsg="请选择月份"
  1142. :flag="!this.mouthIncome"
  1143. :isDownList="true"
  1144. />
  1145. </div>
  1146. <div class="m-wrap" v-permission="'export/teacherSalary'">
  1147. <div class="title">课酬导出:</div>
  1148. <el-date-picker
  1149. v-model="mouth"
  1150. type="month"
  1151. placeholder="选择月"
  1152. value-format="yyyy-MM-dd"
  1153. class="organSelect"
  1154. ></el-date-picker>
  1155. <!-- <el-select v-model.trim="courseScheduleType"
  1156. style="marginLeft:10px"
  1157. filterable
  1158. clearable
  1159. multiple
  1160. placeholder="课程类型">
  1161. <el-option v-for="(item, index) in courseArray"
  1162. :key="index"
  1163. :label="item.label"
  1164. :value="item.value"></el-option>
  1165. </el-select> -->
  1166. <!-- <el-button
  1167. style="margin-left: 10px"
  1168. type="primary"
  1169. @click="exportSalar"
  1170. >导出</el-button
  1171. > -->
  1172. <ExportChiose
  1173. style="margin-left: 10px"
  1174. ExportEnum="TEACHER_SALARY"
  1175. :exportData="exportSalar"
  1176. fileName="课酬导出"
  1177. errorMsg="请选择月份"
  1178. :flag="!this.mouth"
  1179. />
  1180. <el-tooltip placement="top" popper-class="mTooltip">
  1181. <div slot="content">将只导出当前选择月份已结算的课程课酬。</div>
  1182. <i
  1183. class="el-icon-question micon el-tooltip"
  1184. style="font-size: 18px; color: #f56c6c"
  1185. v-permission="'export/teacherSalary'"
  1186. ></i>
  1187. </el-tooltip>
  1188. </div>
  1189. <div class="m-wrap" v-permission="'export/userCoursesAccount/4388'">
  1190. <div class="title">课程余额明细:</div>
  1191. <select-all
  1192. v-model.trim="AccountOrganId"
  1193. class="organSelect"
  1194. style="width: 100%"
  1195. filterable
  1196. multiple
  1197. placeholder="请选择分部"
  1198. clearable
  1199. >
  1200. <el-option
  1201. v-for="(item, index) in selects.branchs"
  1202. :key="index"
  1203. :label="item.name"
  1204. :value="item.id"
  1205. ></el-option>
  1206. </select-all>
  1207. <el-date-picker
  1208. v-model.trim="AccountTimer"
  1209. style="width: 360px; margin-left: 15px"
  1210. type="daterange"
  1211. value-format="yyyy-MM-dd"
  1212. range-separator="至"
  1213. start-placeholder="开始日期"
  1214. end-placeholder="结束日期"
  1215. :picker-options="{
  1216. firstDayOfWeek: 1
  1217. }"
  1218. ></el-date-picker>
  1219. <!-- <el-button
  1220. style="margin-left: 10px"
  1221. type="primary"
  1222. @click="exportAccount"
  1223. >导出</el-button
  1224. > -->
  1225. <ExportChiose
  1226. style="margin-left: 10px"
  1227. ExportEnum="USER_COURSES_ACCOUNT"
  1228. :exportData="exportAccount"
  1229. fileName="课程余额明细"
  1230. errorMsg="请选择月份"
  1231. />
  1232. </div>
  1233. <div
  1234. class="m-wrap"
  1235. v-permission="'export/userCashAccountDetail/4389'"
  1236. >
  1237. <div class="title">账户余额明细:</div>
  1238. <select-all
  1239. v-model.trim="AccountDetailOrganId"
  1240. class="organSelect"
  1241. style="width: 100%"
  1242. filterable
  1243. multiple
  1244. placeholder="请选择分部"
  1245. clearable
  1246. >
  1247. <el-option
  1248. v-for="(item, index) in selects.branchs"
  1249. :key="index"
  1250. :label="item.name"
  1251. :value="item.id"
  1252. ></el-option>
  1253. </select-all>
  1254. <el-date-picker
  1255. v-model.trim="AccountDetailTimer"
  1256. style="width: 360px; margin-left: 15px"
  1257. type="daterange"
  1258. value-format="yyyy-MM-dd"
  1259. range-separator="至"
  1260. start-placeholder="开始日期"
  1261. end-placeholder="结束日期"
  1262. :picker-options="{
  1263. firstDayOfWeek: 1
  1264. }"
  1265. ></el-date-picker>
  1266. <!-- <el-button
  1267. style="margin-left: 10px"
  1268. type="primary"
  1269. @click="exportDetailAccount"
  1270. >导出</el-button
  1271. > -->
  1272. <ExportChiose
  1273. style="margin-left: 10px"
  1274. ExportEnum="USER_CASH_ACCOUNT_DETAIL"
  1275. :exportData="exportAccount"
  1276. fileName="课程余额明细"
  1277. errorMsg="请选择月份"
  1278. />
  1279. </div>
  1280. <div
  1281. class="m-wrap"
  1282. v-permission="'multiDataSourceHomeStats/exportPaymentFlow/5289'"
  1283. >
  1284. <div class="title">三端订单明细:</div>
  1285. <el-date-picker
  1286. v-model.trim="paymentFlowTimer"
  1287. style="width: 360px"
  1288. type="daterange"
  1289. value-format="yyyy-MM-dd"
  1290. range-separator="至"
  1291. start-placeholder="开始日期"
  1292. end-placeholder="结束日期"
  1293. :picker-options="{
  1294. firstDayOfWeek: 1
  1295. }"
  1296. ></el-date-picker>
  1297. <el-button
  1298. style="margin-left: 10px"
  1299. type="primary"
  1300. @click="exportPaymentFlow"
  1301. >导出</el-button
  1302. >
  1303. <el-tooltip placement="top" popper-class="mTooltip">
  1304. <div slot="content">
  1305. 按分账/支付日期导出管乐迷、酷乐秀、音乐数字课堂三个平台的订单明细,Excel
  1306. 内包含「管乐迷」「酷乐秀」「音乐数字课堂」三个
  1307. Sheet,该报表不支持按分部筛选
  1308. </div>
  1309. <i
  1310. class="el-icon-question micon el-tooltip"
  1311. style="font-size: 18px; color: #f56c6c"
  1312. ></i>
  1313. </el-tooltip>
  1314. </div>
  1315. </el-collapse-item>
  1316. <el-collapse-item name="4">
  1317. <template slot="title">
  1318. <p class="wrapTitle">平衡关系</p>
  1319. </template>
  1320. <BalancedRelationship />
  1321. </el-collapse-item>
  1322. <!-- <el-collapse-item
  1323. name="4"
  1324. v-if="$helpers.permission('questionnaireUserResult/export/report')"
  1325. >
  1326. <template slot="title">
  1327. <p class="wrapTitle">其他数据</p>
  1328. </template>
  1329. <div
  1330. class="m-wrap"
  1331. v-if="$helpers.permission('questionnaireUserResult/export/report')"
  1332. >
  1333. <div class="title">问卷调查:</div>
  1334. <el-select
  1335. v-model.trim="questionActiveType"
  1336. class="organSelect"
  1337. style="width: 100%"
  1338. filterable
  1339. placeholder="请选择导出类型"
  1340. clearable
  1341. >
  1342. <el-option
  1343. label="学练宝用户反馈"
  1344. value="CLOUD_TEACHER_FEEDBACK"
  1345. ></el-option>
  1346. </el-select>
  1347. <el-button
  1348. style="margin-left: 10px"
  1349. type="primary"
  1350. @click="exportQuestion"
  1351. >导出</el-button
  1352. >
  1353. <ExportChiose
  1354. style="margin-left: 10px"
  1355. ExportEnum="USER_CASH_ACCOUNT_DETAIL"
  1356. :exportData="{ activeType: this.questionActiveType }"
  1357. fileName="问卷调查"
  1358. errorMsg="请选择月份"
  1359. />
  1360. </div>
  1361. </el-collapse-item> -->
  1362. </el-collapse>
  1363. </div>
  1364. </div>
  1365. </template>
  1366. <script>
  1367. import { exportTeacherSalary } from "@/api/generalSettings";
  1368. import { courseType, courseListType } from "@/utils/searchArray";
  1369. import ExportChiose from "@/components/Export-chiose";
  1370. import { Export } from "@/utils/downLoadFile";
  1371. import cleanDeep from "clean-deep";
  1372. import qs from "qs";
  1373. import dayjs from "dayjs";
  1374. import axios from "axios";
  1375. import { getToken, getTenantId } from "@/utils/auth";
  1376. import { getTimes } from "@/utils";
  1377. import load from "@/utils/loading";
  1378. import BalancedRelationship from "./balanced-relationship";
  1379. export default {
  1380. name: "reportForm",
  1381. components: {
  1382. ExportChiose,
  1383. BalancedRelationship
  1384. },
  1385. data() {
  1386. return {
  1387. incomeOrganId: [],
  1388. mouthIncome: "",
  1389. mouth: "",
  1390. organIdList: [],
  1391. teacherDefaultSalaryOrganId: [],
  1392. courseArray: courseType,
  1393. courseListType,
  1394. courseScheduleType: [],
  1395. musicTeamNum: [],
  1396. studentOrganId: [],
  1397. studentMonth: "",
  1398. attendanceOrganId: [],
  1399. attendanceCourseType: "MUSIC",
  1400. timer: [],
  1401. leBaoTimer: [],
  1402. AccountOrganId: [],
  1403. AccountTimer: [],
  1404. AccountDetailOrganId: [],
  1405. AccountDetailTimer: [],
  1406. trainOrganId: [],
  1407. questionActiveType: "CLOUD_TEACHER_FEEDBACK",
  1408. vipOrganId: [],
  1409. serviceOrganId: [], // 服务报表
  1410. serviceTimer: [],
  1411. Abnormal: {
  1412. organIds: []
  1413. },
  1414. activeName: ["1", "2", "3", "4"],
  1415. vipStudentCourseOrganId: [],
  1416. musicStudentCourseOrganId: [],
  1417. VipStudentOrganId: [],
  1418. teamOrganId: [],
  1419. teamTimer: [],
  1420. activeOrganId: [],
  1421. studentServerOrganId: [],
  1422. studentServerTimer: [],
  1423. trainingOrganId: [],
  1424. trainingTimer: [],
  1425. visitmouth: "",
  1426. operatingMouth: "",
  1427. reportCountMouth: "",
  1428. oaDetailMouth: "",
  1429. oaCountMouth: "",
  1430. cloudAcivationOrganId: [],
  1431. expotAcivationMouth: "",
  1432. cloudTimer: [],
  1433. yunOrganId: [],
  1434. yunTimer: [
  1435. dayjs()
  1436. .set("date", 1)
  1437. .format("YYYY-MM-DD"),
  1438. dayjs().format("YYYY-MM-DD")
  1439. ],
  1440. trainTeacherOrganId: [],
  1441. trainTeacherTimer: [],
  1442. pickerOptions: {
  1443. firstDayOfWeek: 1,
  1444. disabledDate(time) {
  1445. return time.getTime() + 86400000 > new Date().getTime();
  1446. }
  1447. },
  1448. headers: {
  1449. Authorization: getToken(),
  1450. tenantId: getTenantId()
  1451. },
  1452. echelonDataOrganId: [],
  1453. musicGroupNoDataOrganId: [],
  1454. paymentFlowTimer: []
  1455. };
  1456. },
  1457. mounted() {
  1458. this.$store.dispatch("setBranchs");
  1459. },
  1460. methods: {
  1461. reportBeforeUpload(file) {
  1462. load.startLoading();
  1463. },
  1464. reportHandleSuccess(response, file, fileList) {
  1465. // 导入商品
  1466. // 报表导出
  1467. load.endLoading();
  1468. if (response.code == 200) {
  1469. this.$message.success(response.msg || "导入成功");
  1470. } else if (response.code == 0) {
  1471. let str = this.fomatStr(response.msg);
  1472. this.$alert(str, "导入结果", {
  1473. confirmButtonText: "确定",
  1474. dangerouslyUseHTMLString: true,
  1475. callback: action => {}
  1476. });
  1477. } else {
  1478. this.$message.error(response.msg);
  1479. }
  1480. },
  1481. reportHandleError(err, file, fileList) {
  1482. load.endLoading();
  1483. },
  1484. downloadTemplateReportOut() {
  1485. window.location.href =
  1486. "https://oss.dayaedu.com/daya-docs/%E7%BB%8F%E8%90%A5%E6%8A%A5%E8%A1%A8%E5%A4%96%E9%83%A8%E6%95%B0%E6%8D%AE%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xls";
  1487. },
  1488. exportMusicGroup() {
  1489. if (this.organIdList.length < 1) {
  1490. this.$message.error("请至少选择一个分部");
  1491. return;
  1492. }
  1493. let url = "/api-web/export/musicGroupRegister";
  1494. let data = { organIds: this.organIdList.join(",") };
  1495. const options = {
  1496. method: "POST",
  1497. headers: {
  1498. Authorization: getToken(),
  1499. tenantId: getTenantId()
  1500. },
  1501. data: qs.stringify(cleanDeep(data)),
  1502. url,
  1503. responseType: "blob"
  1504. };
  1505. this.$confirm("您确定导出招生情况汇总表", "提示", {
  1506. confirmButtonText: "确定",
  1507. cancelButtonText: "取消",
  1508. type: "warning"
  1509. })
  1510. .then(() => {
  1511. load.startLoading();
  1512. axios(options)
  1513. .then(res => {
  1514. let blob = new Blob([res.data], {
  1515. // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
  1516. type: "application/vnd.ms-excel;charset=utf-8"
  1517. //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
  1518. });
  1519. let text = new Response(blob).text();
  1520. text.then(res => {
  1521. // 判断是否报错
  1522. if (res.indexOf("code") != -1) {
  1523. let json = JSON.parse(res);
  1524. if (json.code == 403) {
  1525. this.$message.error(`登录过期,请重新登录!`);
  1526. setTimeout(() => {
  1527. this.$store.dispatch("user/resetToken").then(() => {
  1528. location.reload();
  1529. });
  1530. }, 1000);
  1531. return;
  1532. }
  1533. this.$message.error(json.msg);
  1534. } else {
  1535. let objectUrl = URL.createObjectURL(blob);
  1536. let link = document.createElement("a");
  1537. let nowTime = new Date();
  1538. let ymd =
  1539. nowTime.getFullYear() +
  1540. "" +
  1541. (nowTime.getMonth() + 1) +
  1542. "" +
  1543. nowTime.getDate();
  1544. let fname = ymd + "招生情况汇总表.xls"; //下载文件的名字
  1545. link.href = objectUrl;
  1546. link.setAttribute("download", fname);
  1547. document.body.appendChild(link);
  1548. link.click();
  1549. }
  1550. });
  1551. load.endLoading();
  1552. })
  1553. .catch(error => {
  1554. this.$message.error("导出数据失败,请联系管理员");
  1555. load.endLoading();
  1556. });
  1557. })
  1558. .catch(() => {});
  1559. },
  1560. exportMusicTeamNum() {
  1561. let organIds = this.musicTeamNum.join(",");
  1562. let url = "/api-web/export/musicGroupNormalStudentNum";
  1563. let data = { organIds };
  1564. const options = {
  1565. method: "POST",
  1566. headers: {
  1567. Authorization: getToken(),
  1568. tenantId: getTenantId()
  1569. },
  1570. data: qs.stringify(cleanDeep(data)),
  1571. url,
  1572. responseType: "blob"
  1573. };
  1574. this.$confirm("您确定导出乐团在读人数", "提示", {
  1575. confirmButtonText: "确定",
  1576. cancelButtonText: "取消",
  1577. type: "warning"
  1578. })
  1579. .then(() => {
  1580. load.startLoading();
  1581. axios(options)
  1582. .then(res => {
  1583. let blob = new Blob([res.data], {
  1584. // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
  1585. type: "application/vnd.ms-excel;charset=utf-8"
  1586. //word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
  1587. });
  1588. let text = new Response(blob).text();
  1589. text.then(res => {
  1590. // 判断是否报错
  1591. if (res.indexOf("code") != -1) {
  1592. let json = JSON.parse(res);
  1593. if (json.code == 403) {
  1594. this.$message.error(`登录过期,请重新登录!`);
  1595. setTimeout(() => {
  1596. this.$store.dispatch("user/resetToken").then(() => {
  1597. location.reload();
  1598. });
  1599. }, 1000);
  1600. return;
  1601. }
  1602. this.$message.error(json.msg);
  1603. } else {
  1604. let objectUrl = URL.createObjectURL(blob);
  1605. let link = document.createElement("a");
  1606. let nowTime = new Date();
  1607. let ymd =
  1608. nowTime.getFullYear() +
  1609. "" +
  1610. (nowTime.getMonth() + 1) +
  1611. "" +
  1612. nowTime.getDate();
  1613. let fname = ymd + "乐团在读人数.xls"; //下载文件的名字
  1614. link.href = objectUrl;
  1615. link.setAttribute("download", fname);
  1616. document.body.appendChild(link);
  1617. link.click();
  1618. }
  1619. });
  1620. load.endLoading();
  1621. })
  1622. .catch(error => {
  1623. this.$message.error("导出数据失败,请联系管理员");
  1624. load.endLoading();
  1625. });
  1626. })
  1627. .catch(() => {});
  1628. },
  1629. exportQuestion() {
  1630. Export(
  1631. this,
  1632. {
  1633. url: "/api-web/questionnaireUserResult/export",
  1634. fileName: "问卷调查.xls",
  1635. method: "get",
  1636. params: { activeType: this.questionActiveType }
  1637. },
  1638. "您确定导出问卷调查?"
  1639. );
  1640. },
  1641. getNowDateAndMonday(time) {
  1642. let timestamp = new Date(time.replace(/-/g, "/")).getTime();
  1643. let serverDate = new Date(time);
  1644. if (serverDate.getDay() == 0) {
  1645. timestamp -= 7 * 24 * 60 * 60 * 1000;
  1646. }
  1647. let mondayTime =
  1648. timestamp - (serverDate.getDay() - 1) * 24 * 60 * 60 * 1000;
  1649. let mondayData = new Date(mondayTime);
  1650. //年
  1651. let mondayY = mondayData.getFullYear();
  1652. //月
  1653. let mondayM =
  1654. mondayData.getMonth() + 1 < 10
  1655. ? "0" + (mondayData.getMonth() + 1)
  1656. : mondayData.getMonth() + 1;
  1657. //日
  1658. let mondayD =
  1659. mondayData.getDate() < 10
  1660. ? "0" + mondayData.getDate()
  1661. : mondayData.getDate();
  1662. let str = mondayY + "-" + mondayM + "-" + mondayD;
  1663. return str;
  1664. },
  1665. getNowDateAndSunday(time) {
  1666. let timestamp = new Date(time.replace(/-/g, "/")).getTime();
  1667. let serverDate = new Date(time);
  1668. let num = 7 - serverDate.getDay();
  1669. if (num == 7) {
  1670. num = 0;
  1671. }
  1672. let sundayTiem = timestamp + num * 24 * 60 * 60 * 1000;
  1673. let SundayData = new Date(sundayTiem);
  1674. //年
  1675. let tomorrowY = SundayData.getFullYear(); //月
  1676. let tomorrowM =
  1677. SundayData.getMonth() + 1 < 10
  1678. ? "0" + (SundayData.getMonth() + 1)
  1679. : SundayData.getMonth() + 1;
  1680. //日
  1681. let tomorrowD =
  1682. SundayData.getDate() < 10
  1683. ? "0" + SundayData.getDate()
  1684. : SundayData.getDate();
  1685. let str = tomorrowY + "-" + tomorrowM + "-" + tomorrowD;
  1686. return str;
  1687. },
  1688. getWeekTime(val) {
  1689. if (val && val.length > 0) {
  1690. let start = this.getNowDateAndMonday(val[0]);
  1691. let end = this.getNowDateAndSunday(val[1]);
  1692. this.teamTimer.splice(0, 1, start);
  1693. this.teamTimer.splice(1, 1, end);
  1694. }
  1695. },
  1696. getStudentWeekTime(val) {
  1697. let start = this.getNowDateAndMonday(val[0]);
  1698. let end = this.getNowDateAndSunday(val[1]);
  1699. this.studentServerTimer.splice(0, 1, start);
  1700. this.studentServerTimer.splice(1, 1, end);
  1701. },
  1702. exportMusicGroup() {
  1703. let params = {
  1704. ...getTimes(this.teamTimer, ["startTime", "endTime"]),
  1705. organId: this.teamOrganId.join(",")
  1706. };
  1707. Export(
  1708. this,
  1709. {
  1710. method: "post",
  1711. url: "/api-web/export/exportMusicGroupCourseList",
  1712. params: this.$helpers.qs.stringify({
  1713. ...params
  1714. })
  1715. },
  1716. "是否确认导出报表?"
  1717. );
  1718. },
  1719. exportPaymentFlow() {
  1720. const params = getTimes(this.paymentFlowTimer, ["startTime", "endTime"]);
  1721. if (!params.startTime || !params.endTime) {
  1722. this.$message.error("请选择导出时间范围");
  1723. return;
  1724. }
  1725. Export(
  1726. this,
  1727. {
  1728. method: "get",
  1729. url: "/api-web/multiDataSourceHomeStats/exportPaymentFlow",
  1730. fileName: `三端订单明细(${params.startTime}~${params.endTime}).xls`,
  1731. params
  1732. },
  1733. `您确定导出 ${params.startTime} 至 ${params.endTime} 的三端订单明细?`
  1734. );
  1735. }
  1736. },
  1737. computed: {
  1738. exportTeacherTrain() {
  1739. // if (this.trainTeacherTimer.length < 1) {
  1740. // this.$message.error("请选择时间段");
  1741. // return;
  1742. // }
  1743. // if (this.trainTeacherOrganId.length < 1) {
  1744. // this.$message.error("请选择分部");
  1745. // return;
  1746. // }
  1747. let startTime = this.trainTeacherTimer[0] || null;
  1748. let endTime = this.trainTeacherTimer[1] || null;
  1749. // Export(
  1750. // this,
  1751. // {
  1752. // url: "/api-web/export/teacherCloudTrainingList",
  1753. // fileName: "老师使用学练宝数据.xls",
  1754. // method: "post",
  1755. // params: qs.stringify({
  1756. // organIdList: this.trainTeacherOrganId.join(","),
  1757. // startTime,
  1758. // endTime,
  1759. // }),
  1760. // },
  1761. // "您确定导出老师使用学练宝数据?"
  1762. // );
  1763. let obj = {
  1764. organId: this.trainTeacherOrganId.join(","),
  1765. startTime,
  1766. endTime
  1767. };
  1768. return obj;
  1769. },
  1770. exportAttendance() {
  1771. let classStartDate, classEndDate;
  1772. if (this.timer && this.timer.length > 0) {
  1773. classStartDate = this.timer[0];
  1774. classEndDate = this.timer[1];
  1775. } else {
  1776. classStartDate = null;
  1777. classEndDate = null;
  1778. }
  1779. return {
  1780. organId: this.attendanceOrganId.join(","),
  1781. groupType: this.attendanceCourseType,
  1782. classStartDate,
  1783. classEndDate
  1784. };
  1785. },
  1786. exportTrain() {
  1787. let cloudTeacherTrainStartDate, cloudTeacherTrainEndDate;
  1788. if (this.cloudTimer && this.cloudTimer.length > 0) {
  1789. cloudTeacherTrainStartDate = this.cloudTimer[0];
  1790. cloudTeacherTrainEndDate = this.cloudTimer[1];
  1791. } else {
  1792. cloudTeacherTrainStartDate = null;
  1793. cloudTeacherTrainEndDate = null;
  1794. }
  1795. let obj = {
  1796. organIds: this.trainOrganId.join(","),
  1797. cloudTeacherTrainStartDate,
  1798. cloudTeacherTrainEndDate
  1799. };
  1800. console.log(obj, "exportTrain");
  1801. return obj;
  1802. },
  1803. exportDefaultSalary() {
  1804. let organIdList = this.teacherDefaultSalaryOrganId.join(",");
  1805. let url = "/api-web/export/teacherDefaultSalary";
  1806. let data = { organIdList };
  1807. return data;
  1808. },
  1809. exportStudent() {
  1810. let studentOrganId = this.studentOrganId.join(",");
  1811. return { organIds: studentOrganId, date: this.studentMonth };
  1812. },
  1813. exportLeBao() {
  1814. let endTime, startTime;
  1815. if (this.leBaoTimer && this.leBaoTimer.length > 1) {
  1816. startTime = this.leBaoTimer[0];
  1817. let end = this.leBaoTimer[1];
  1818. end = new Date(end);
  1819. end = new Date(end.getFullYear(), end.getMonth() + 1, 0);
  1820. endTime = dayjs(end).format("YYYY-MM-DD");
  1821. }
  1822. return { startTime: startTime, endTime: endTime };
  1823. },
  1824. exportVip() {
  1825. // if (!this.vipOrganId.length < 0) {
  1826. // this.$message.error("请选择分部");
  1827. // return;
  1828. // }
  1829. let data = {
  1830. organId: this.vipOrganId.join(",")
  1831. };
  1832. return data;
  1833. },
  1834. exportVipStudent() {
  1835. let data = {
  1836. organId: this.VipStudentOrganId.join(",")
  1837. };
  1838. return data;
  1839. },
  1840. exportActive() {
  1841. let data = {
  1842. organId: this.activeOrganId.join(",")
  1843. };
  1844. return data;
  1845. },
  1846. exportStudentServer() {
  1847. let sunday, monday;
  1848. if (this.studentServerTimer && this.studentServerTimer.length > 1) {
  1849. monday = this.studentServerTimer[0];
  1850. sunday = this.studentServerTimer[1];
  1851. } else {
  1852. monday = null;
  1853. sunday = null;
  1854. }
  1855. return {
  1856. monday,
  1857. sunday,
  1858. organId: this.studentServerOrganId.join(",")
  1859. };
  1860. },
  1861. exportDetailService() {
  1862. let sunday, monday;
  1863. if (this.serviceTimer && this.serviceTimer.length > 1) {
  1864. monday = this.serviceTimer[0];
  1865. sunday = this.serviceTimer[1];
  1866. } else {
  1867. monday = null;
  1868. sunday = null;
  1869. }
  1870. return {
  1871. monday: monday,
  1872. sunday: sunday,
  1873. organId: this.serviceOrganId.join(",")
  1874. };
  1875. },
  1876. exportAbnormal() {
  1877. console.log(this.Abnormal);
  1878. return {
  1879. organIds: this.Abnormal.organIds.join(",")
  1880. };
  1881. },
  1882. exportSalar() {
  1883. // if (!this.mouth) {
  1884. // this.$message.error("请选择导出月份");
  1885. // return;
  1886. // }
  1887. // let courseTypeList = this.courseScheduleType.join(',')
  1888. // let url = "/api-web/export/teacherSalary";
  1889. let data = { date: this.mouth };
  1890. return data;
  1891. },
  1892. exportIncome() {
  1893. let data = {
  1894. month: this.mouthIncome,
  1895. organId: this.incomeOrganId.join(",")
  1896. };
  1897. return data;
  1898. },
  1899. exportOperating() {
  1900. let data = { date: this.operatingMouth };
  1901. return data;
  1902. },
  1903. exportOaCount() {
  1904. let data = { month: this.oaCountMouth };
  1905. return data;
  1906. },
  1907. exportOaDetail() {
  1908. let data = { month: this.oaDetailMouth };
  1909. return data;
  1910. },
  1911. exportCount() {
  1912. let data = { month: this.reportCountMouth };
  1913. return data;
  1914. },
  1915. exportVisit() {
  1916. let data = { month: this.visitmouth };
  1917. return data;
  1918. },
  1919. expotAcivationDetails() {
  1920. let data = {
  1921. month: this.expotAcivationMouth,
  1922. organId: this.cloudAcivationOrganId.join(",")
  1923. };
  1924. return data;
  1925. },
  1926. exportEchelonData() {
  1927. let data = {
  1928. organId: this.echelonDataOrganId.join(",")
  1929. };
  1930. return data;
  1931. },
  1932. exportMusicGroupNoData() {
  1933. let data = {
  1934. organId: this.musicGroupNoDataOrganId.join(",")
  1935. };
  1936. return data;
  1937. },
  1938. exportAccount() {
  1939. let endTime, startTime;
  1940. if (this.AccountTimer && this.AccountTimer.length > 1) {
  1941. startTime = this.AccountTimer[0];
  1942. endTime = this.AccountTimer[1];
  1943. } else {
  1944. startTime = null;
  1945. endTime = null;
  1946. }
  1947. return {
  1948. startTime: startTime,
  1949. endTime: endTime,
  1950. organId: this.AccountOrganId.join(",")
  1951. };
  1952. },
  1953. exporTtraining() {
  1954. let endTime, startTime;
  1955. if (this.trainingTimer && this.trainingTimer.length > 1) {
  1956. startTime = this.trainingTimer[0];
  1957. endTime = this.trainingTimer[1];
  1958. } else {
  1959. startTime = null;
  1960. endTime = null;
  1961. }
  1962. return {
  1963. startDate: startTime,
  1964. endDate: endTime,
  1965. organId: this.trainingOrganId.join(",")
  1966. };
  1967. },
  1968. exporyun() {
  1969. let endTime, startTime;
  1970. if (this.yunTimer && this.yunTimer.length > 1) {
  1971. startTime = this.yunTimer[0];
  1972. endTime = this.yunTimer[1];
  1973. } else {
  1974. startTime = null;
  1975. endTime = null;
  1976. }
  1977. return {
  1978. startDate: startTime,
  1979. endDate: endTime,
  1980. organId: this.yunOrganId.join(",")
  1981. };
  1982. },
  1983. exportDetailAccount() {
  1984. let endTime, startTime;
  1985. if (this.AccountDetailTimer && this.AccountDetailTimer.length > 1) {
  1986. startTime = this.AccountDetailTimer[0];
  1987. endTime = this.AccountDetailTimer[1];
  1988. } else {
  1989. startTime = null;
  1990. endTime = null;
  1991. }
  1992. return {
  1993. startTime: startTime,
  1994. endTime: endTime,
  1995. organId: this.AccountDetailOrganId.join(",")
  1996. };
  1997. }
  1998. }
  1999. // AccountDetailTimer
  2000. };
  2001. </script>
  2002. <style lang="scss" scoped>
  2003. .m-container {
  2004. // margin-top: 20px;
  2005. .m-wrap {
  2006. display: flex;
  2007. flex-direction: row;
  2008. justify-content: flex-start;
  2009. width: 100%;
  2010. align-items: center;
  2011. margin-bottom: 16px;
  2012. .newBand {
  2013. margin: 0 5px 0 10px;
  2014. }
  2015. .title {
  2016. width: 150px;
  2017. // height: 40px;
  2018. // line-height: 40px;
  2019. text-align: right;
  2020. color: #212121;
  2021. font-weight: 600;
  2022. }
  2023. .organSelect {
  2024. width: 260px !important;
  2025. }
  2026. .el-tooltip.micon {
  2027. width: 20px;
  2028. height: 20px;
  2029. position: relative;
  2030. margin-left: 8px;
  2031. // top: 12px;
  2032. }
  2033. }
  2034. .formCollapse {
  2035. border: none;
  2036. ::v-deep .el-collapse-item__header {
  2037. padding: 0 15px;
  2038. border-bottom: none;
  2039. background-color: #f8f8f8;
  2040. }
  2041. ::v-deep .el-collapse-item__wrap {
  2042. padding: 15px;
  2043. border-bottom: none;
  2044. }
  2045. ::v-deep .el-collapse-item__arrow.is-active {
  2046. transform: rotate(-90deg);
  2047. }
  2048. // 默认方向
  2049. ::v-deep .el-collapse-item__arrow,
  2050. .el-tabs__nav {
  2051. transform: rotate(90deg);
  2052. }
  2053. ::v-deep .el-collapse-item__content {
  2054. padding-bottom: 0px !important;
  2055. }
  2056. .wrapTitle {
  2057. font-size: 18px;
  2058. position: relative;
  2059. font-weight: 600;
  2060. margin-left: 12px;
  2061. &::after {
  2062. position: absolute;
  2063. width: 4px;
  2064. height: 18px;
  2065. background: var(--color-primary);
  2066. border-radius: 2px;
  2067. left: -13px;
  2068. top: 14px;
  2069. content: "";
  2070. }
  2071. }
  2072. }
  2073. }
  2074. ::v-deep .el-input__icon.el-icon-date {
  2075. height: 40px !important;
  2076. }
  2077. </style>