materialApplicationds.vue 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127
  1. <template>
  2. <fullscreen :fullscreen.sync="fullscreen" class="container">
  3. <div class="container-box">
  4. <toolList @iconCli='iconCli' :tooltit='tooltit'></toolList>
  5. <div class="search">
  6. <!-- <mySearch :searchList="searchList" @searchInfo="searchInfo"></mySearch> -->
  7. <eltabs :tabList="tabList" @status="clickTabs"></eltabs>
  8. <!-- <el-button class="btn-check" size="medium" type="primary" @click='jumpadd'
  9. v-if="(userInfo.cityName==null&&userInfo.countyName==null)||(userInfo.cityName!=null&&userInfo.countyName==null)">添加
  10. </el-button> -->
  11. <el-button class="btn-check" size="medium" type="primary" @click='jumpadd' v-if="userInfo.duty > 9"
  12. style="width:100px;height:50px">添加
  13. </el-button>
  14. <!-- <el-button size="medium" type="primary" @click="operationZuo()">
  15. 处理
  16. </el-button> -->
  17. </div>
  18. <div class="tabbox" v-if="this.childname == 'first' || this.childname == 'two'">
  19. <tableList :list="Table" ref="TableList" @clickDemand="clickDemand" @changeNum="changeNum"></tableList>
  20. </div>
  21. <div class="tabbox" v-if="this.childname == 'three'">
  22. <el-table :data="tableData" style="width: 100%" ref="refTable" height="400px" max-height="400px">
  23. <el-table-column type="expand">
  24. <template slot-scope="props">
  25. <!-- <el-table v-loading="loading2" :data="props.row.fxfkProcessList" size="mini" style="width: 95%;margin-left: 5%;"> -->
  26. <el-table :data="props.row.xcwlProProcessList" size="mini" style="width: 95%;margin-left: 5%;"
  27. @cell-click="getRowList">
  28. <el-table-column label="序号" type="index" width="50">
  29. </el-table-column>
  30. <el-table-column label="业务名称" prop="needName"></el-table-column>
  31. <el-table-column label="地市" prop="region"></el-table-column>
  32. <el-table-column label="区县" prop="district"></el-table-column>
  33. <el-table-column label="渠道/小区/校园名称" prop="channelQuartersSchool"> </el-table-column>
  34. <el-table-column label="使用场景" prop="useCase"></el-table-column>
  35. <el-table-column label="物料名称" prop="material"></el-table-column>
  36. <el-table-column label="物料编码" prop="materialNo"></el-table-column>
  37. <el-table-column label="规格尺码" prop="spec"></el-table-column>
  38. <el-table-column label="长(米)" prop="chang"></el-table-column>
  39. <el-table-column label="宽(米)" prop="kuan"></el-table-column>
  40. <el-table-column label="横/竖" prop="hengShu"></el-table-column>
  41. <el-table-column label="系数" prop="coefficient"></el-table-column>
  42. <!-- <el-table-column label="单价" prop="price"></el-table-column> -->
  43. <el-table-column label="数量" prop="quantity"></el-table-column>
  44. <!-- <el-table-column label="结算金额" prop="replyContent"></el-table-column> -->
  45. <el-table-column label="麦穗" prop="gys1Price"></el-table-column>
  46. <el-table-column label="神笔" prop="gys2Price"></el-table-column>
  47. <el-table-column label="江苏邮电" prop="gys3Price"></el-table-column>
  48. <el-table-column label="湖州绿包" prop="gys4Price"></el-table-column>
  49. <el-table-column label="状态" prop="taskname"></el-table-column>
  50. <el-table-column label="操作" fixed="right" align="center">
  51. <template slot-scope="scope">
  52. <el-button size="mini" type="text" @click="getinform(scope.row)"
  53. v-if="scope.row.taskname == null || scope.row.taskname == '起草'">
  54. 任务下发</el-button>
  55. <el-button size="mini" type="text" @click="chakanfaqi(scope.row)"
  56. v-if="scope.row.taskname != null && scope.row.taskname != '起草'">
  57. 查看</el-button>
  58. </template>
  59. <!-- <template slot-scope="scope">
  60. </template> -->
  61. </el-table-column>
  62. </el-table>
  63. </template>
  64. </el-table-column>
  65. <el-table-column label="业务名称" prop="businessName">
  66. </el-table-column>
  67. <el-table-column label="下单周期" prop="cycle">
  68. </el-table-column>
  69. <el-table-column label="申请人" prop="proposer">
  70. </el-table-column>
  71. <el-table-column label="申请人部门" prop="applydept">
  72. </el-table-column>
  73. <el-table-column label="申请人类型" prop="applyType">
  74. </el-table-column>
  75. <el-table-column label="申请时间" prop="applyTime">
  76. </el-table-column>
  77. <el-table-column label="当前进度" prop="progressBar">
  78. <template slot-scope="props">
  79. <el-progress :percentage="props.row.progressBar"></el-progress>
  80. </template>
  81. </el-table-column>
  82. </el-table>
  83. <!-- v-if="adminpageData.total > 0" -->
  84. <el-pagination style="display: flex; flex-direction: row-reverse" :current-page.sync="adminpageData.pageNum"
  85. :page-sizes="adminpageData.pageSizes ? adminpageData.pageSizes : [5, 10, 15, 20]
  86. " :page-size="adminpageData.pageSize" layout="total, sizes, prev, pager, next, jumper"
  87. :total="adminpageData.total" @size-change="adminhandleSizeChange" @current-change="adminhandleCurrentChange" />
  88. </div>
  89. </div>
  90. <div class="containtbox">
  91. <el-dialog title="处理操作" :visible.sync="dialogVisible1" v-if="dialogVisible1" :before-close="handleCloses"
  92. width="100%" height="100vh" class="dialogClass" top="0" :modal="false" :modal-append-to-body="true"
  93. :destroy-on-close="true">
  94. <!-- -->
  95. <!-- <Workflow :list="ruleForm" :requestForm="requestForm" @dialogVisible1 = "Visible1"/> -->
  96. <Workflow :list="infolist" @updateForm="updateForm" :requestForm="requestForm"
  97. :request_formTitle="request_form.title" />
  98. <!-- @dialogVisible1 = "Visible1" -->
  99. <!-- <WorkflowEntrance
  100. :list="infolist"
  101. v-else
  102. :lastManList="lastManList"
  103. @beforeClose = "updateForm"
  104. :requestForm="requestForm"
  105. /> -->
  106. <span slot="footer" class="dialog-footer">
  107. </span>
  108. </el-dialog>
  109. </div>
  110. <el-dialog :visible.sync="dialogVisible" :before-close="handleCloses" width="100%" height="500vh" class="dialogClass"
  111. top="0" :modal="false" :show-close="false" :modal-append-to-body="true">
  112. <span class="dialog-body">
  113. <el-form :model="infolist" ref="infolist" :rules="rules" label-width="100px" class="demo-ruleForm">
  114. <!--dialogVisible1 = true -->
  115. <el-form-item style="position: fixed; top: 50px; left: -60px; z-index: 1000">
  116. <!-- v-if="baocun" @click="newFormgong"-->
  117. <el-button type="primary" @click="dealwith()" v-if="deal">处理</el-button>
  118. <el-button type="primary" @click="close()">关闭</el-button>
  119. <el-button type="primary" @click="saveform()" v-if="baocun">保存</el-button>
  120. <!-- <el-button type="primary" @click="submitForm()" v-if = "baocun">保存</el-button> -->
  121. </el-form-item>
  122. <!-- style="height: calc(100% - 160px); overflow: auto" -->
  123. <div>
  124. <el-row :gutter="10">
  125. <el-col :span="8" style="width: 450px; padding-top: 68px">
  126. <el-form-item prop="businessName" label="业务名称">
  127. <el-input v-model="infolist.businessName" placeholder="业务名称" :disabled="disableStatus"></el-input>
  128. </el-form-item>
  129. </el-col>
  130. <el-col :span="8" style="width: 450px;padding-top: 68px">
  131. <el-form-item label="下单周期" prop="cycle">
  132. <el-date-picker v-model="infolist.cycle" type="daterange" range-separator="-" start-placeholder="开始日期"
  133. end-placeholder="结束日期" :disabled="disableStatus" :picker-options="pickerOptions0">
  134. </el-date-picker>
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="8" style="width: 450px;padding-top: 68px">
  138. <el-form-item label="需求编号" prop="needCode">
  139. <el-input v-model="infolist.needCode" placeholder="需求编号" disabled></el-input>
  140. </el-form-item>
  141. </el-col>
  142. </el-row>
  143. <el-row :gutter="10">
  144. <el-col :span="8" style="width: 450px">
  145. <el-form-item prop="districtScore" label="区县打分">
  146. <el-input v-model="infolist.districtScore" placeholder="区县打分"
  147. :disabled="this.infolist.tabletaskName != '区县公司负责人'"></el-input>
  148. </el-form-item>
  149. </el-col>
  150. <el-col :span="8" style="width: 410px">
  151. <el-form-item prop="gys" label="供应商">
  152. <!-- <span>供应商</span> -->
  153. <el-select @change="gysMing(1, $event)" clearable v-model="infolist.gys" placeholder="供应商"
  154. :disabled="this.infolist.tabletaskName != '省公司宣传负责人'">
  155. <el-option v-for="(items, index) in gysopt" :key="index" :label="items.name" :value="items.name">
  156. </el-option>
  157. </el-select>
  158. </el-form-item>
  159. </el-col>
  160. <el-col :span="8" style="width: 470px">
  161. <el-form-item label="物料验证材料链接" prop="materialUrl" label-width="140px">
  162. <el-input v-model="infolist.materialUrl" placeholder="物料验证材料链接"
  163. :disabled="this.infolist.tabletaskName != '区县公司负责人'"></el-input>
  164. </el-form-item>
  165. </el-col>
  166. </el-row>
  167. <el-row>
  168. <el-col :span="24">
  169. <el-form-item class="info-line online">
  170. <el-table :data="infomaterType" style="width: 100%" height="240px" border size="mini">
  171. <!-- <el-table-column type="selection" width="55" fixed="left" > -->
  172. <!-- </el-table-column> -->
  173. <el-table-column prop="riqi" label="日期">
  174. </el-table-column>
  175. <el-table-column prop="formType" label="表单类型">
  176. </el-table-column>
  177. <el-table-column prop="region" label="地市公司">
  178. </el-table-column>
  179. <el-table-column prop="district" label="区县名称">
  180. </el-table-column>
  181. <el-table-column prop="channelCode" label="渠道编码">
  182. </el-table-column>
  183. <el-table-column prop="channelQuartersSchool" label="渠道/小区/校园名称">
  184. </el-table-column>
  185. <!-- <el-table-column prop="useCase" label="场景"> -->
  186. <el-table-column prop="useCase" label="场景">
  187. </el-table-column>
  188. <el-table-column prop="channelCode" label="物料编码">
  189. </el-table-column>
  190. <el-table-column prop="material" label="物料名称">
  191. </el-table-column>
  192. <el-table-column prop="unit" label="物料单位">
  193. </el-table-column>
  194. <el-table-column prop="spec" label="规格尺寸">
  195. </el-table-column>
  196. <el-table-column prop="chang" label="长"> </el-table-column>
  197. <el-table-column prop="kuan" label="宽"> </el-table-column>
  198. <el-table-column prop="hengShu" label="横竖">
  199. </el-table-column>
  200. <el-table-column prop="coefficient" label="系数">
  201. </el-table-column>
  202. <!-- <el-table-column prop="price" label="单价"> </el-table-column> -->
  203. <el-table-column prop="quantity" label="数量">
  204. </el-table-column>
  205. <el-table-column prop="priority" label="优先级">
  206. </el-table-column>
  207. <el-table-column label="麦穗" prop="gys1Price">
  208. <!-- <template slot-scope="scope">
  209. <div>
  210. {{
  211. (scope.row.gys1Price =
  212. scope.row.quantity *
  213. scope.row.price *
  214. scope.row.coefficient)
  215. }}
  216. </div>
  217. </template> -->
  218. </el-table-column>
  219. <el-table-column label="神笔" prop="gys2Price">
  220. <!-- <template slot-scope="scope">
  221. <div>
  222. {{
  223. (scope.row.gys2Price =
  224. scope.row.quantity *
  225. scope.row.price *
  226. scope.row.coefficient)
  227. }}
  228. </div>
  229. </template> -->
  230. </el-table-column>
  231. <el-table-column label="江苏邮电" prop="gys3Price"></el-table-column>
  232. <el-table-column label="湖州绿包" prop="gys4Price"></el-table-column>
  233. <el-table-column label="操作" fixed="right" align="center" v-if="this.infolist.tabletaskName == '起草'">
  234. <template slot-scope="scope">
  235. <el-button size="mini" type="text" @click="updatexiuform(scope.row)" :disabled="xiugaizhuan">
  236. 修改</el-button>
  237. </template>
  238. </el-table-column>
  239. <!-- <el-table-column label="供应商3金额" prop="gys3Price">
  240. <template slot-scope="scope">
  241. <div>
  242. {{
  243. (scope.row.gys3Price =
  244. scope.row.quantity *
  245. scope.row.price *
  246. scope.row.coefficient)
  247. }}
  248. </div>
  249. </template>
  250. </el-table-column>
  251. <el-table-column label="供应商4金额" prop="gys4Price">
  252. <template slot-scope="scope">
  253. <div>
  254. {{
  255. (scope.row.gys4Price =
  256. scope.row.quantity *
  257. scope.row.price *
  258. scope.row.coefficient)
  259. }}
  260. </div>
  261. </template>
  262. </el-table-column> -->
  263. </el-table>
  264. </el-form-item>
  265. </el-col>
  266. </el-row>
  267. <div style="width: 96%; margin:20px 0 0 38px">
  268. <div>
  269. <myUpload @uploadBack="uploadBack" @clickDownload="download" :disabled="updisabled" :fileInfo="fileInfo"
  270. :fileList="fileInfo.fileList">
  271. </myUpload>
  272. </div>
  273. </div>
  274. </div>
  275. </el-form>
  276. <div class="table-title">
  277. <h2>流程追踪</h2>
  278. </div>
  279. <div class="flex-header-process">
  280. <!-- <tableList :list="processTable" ref="el-form" @clickDemand = "clickDemand"></tableList> -->
  281. <el-table :data="tableData1" :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }"
  282. style="width: 100%" max-height="350">
  283. <el-table-column type="index" label="序号" width="50">
  284. </el-table-column>
  285. <el-table-column prop="taskName" label="环节名称" width="280" class="is-center">
  286. </el-table-column>
  287. <el-table-column prop="assignee" label="处理人" width="280">
  288. </el-table-column>
  289. <el-table-column prop="startTime" label="到达时间" width="280">
  290. </el-table-column>
  291. <el-table-column prop="endTime" label="处理时间" width="280">
  292. </el-table-column>
  293. <el-table-column prop="content" label="回复意见" width="280">
  294. </el-table-column>
  295. </el-table>
  296. </div>
  297. </span>
  298. </el-dialog>
  299. <el-dialog title="下单信息" :visible.sync="typests" width="50%" :destroy-on-close="true" :modal-append-to-body="false"
  300. :show-close="false" :before-close="closedia">
  301. <el-form :model="rulelist" ref="rulelist" style="height: 30vh; overflow-y: scroll" v-loading="loadinged">
  302. <div class="info-lineform">
  303. <el-form-item prop="useCase" label="使用场景">
  304. <el-select @change="changeMing(1, $event)" clearable v-model="rulelist.useCase" placeholder="使用场景" disabled>
  305. <el-option v-for="(items, index) in useCaseopt" :key="index" :label="items.dataName"
  306. :value="items.dataName">
  307. </el-option>
  308. </el-select>
  309. </el-form-item>
  310. <el-form-item prop="formType" label="表单类型">
  311. <el-select v-model="rulelist.formType" placeholder="请选择表单类型" disabled>
  312. <el-option v-for="(item, index) in optionList" :label="item.value" :value="item.value"
  313. :key="index"></el-option>
  314. </el-select>
  315. </el-form-item>
  316. <el-form-item prop="material" label="物料名称">
  317. <el-select @change="changeSearch(3, $event)" clearable v-model="rulelist.material" placeholder="物料名称"
  318. disabled>
  319. <el-option v-for="(items, index) in metirialOpt" :key="index" :label="items.metirialName"
  320. :value="items.metirialName">
  321. </el-option>
  322. </el-select>
  323. </el-form-item>
  324. <el-form-item prop="quantity" label="数量" label-width="68px">
  325. <el-input v-model="rulelist.quantity" placeholder="数量" type="number"
  326. oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" style="width:256px">
  327. </el-input>
  328. </el-form-item>
  329. <el-form-item prop="channelQuartersSchool" label="渠道/小区/校园名称" label-width="137px">
  330. <el-input v-model="rulelist.channelQuartersSchool" placeholder="渠道/小区/校园名称" style="width:256px">
  331. </el-input>
  332. </el-form-item>
  333. </div>
  334. </el-form>
  335. <div class="t-footer">
  336. <!-- -->
  337. <el-button type="primary" @click="gengxinge">确 定</el-button>
  338. <!-- <el-button @click="closediaform">取 消</el-button> -->
  339. </div>
  340. </el-dialog>
  341. <el-dialog :title="titname" :visible.sync="applicationDialogStatus" width="30%" :destroy-on-close="true"
  342. :modal-append-to-body="false" :close-on-click-modal="false" :before-close="closedia">
  343. <div v-loading="loadinged">
  344. <el-form :model="approvalinfolist" ref="approvalinfolist">
  345. <el-form-item class="info-line online" style="margin-left: 10%">
  346. <el-radio-group v-model="approvalinfolist.opinionradio">
  347. <el-radio :label="1">同意</el-radio>
  348. <el-radio :label="2">打回</el-radio>
  349. </el-radio-group>
  350. </el-form-item>
  351. <el-form-item class="info-line online" style="text-align: center">
  352. <el-input v-model="approvalinfolist.opinion" placeholder="审批意见" type="textarea" :rows="2"></el-input>
  353. </el-form-item>
  354. </el-form>
  355. <div slot="footer" class="dialog-footer myfooter">
  356. <el-button @click="dialogCli(4)">取 消</el-button>
  357. <el-button type="primary" @click="dialogCli(5)">确 定</el-button>
  358. </div>
  359. </div>
  360. </el-dialog>
  361. <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible"
  362. v-if="centerDialogVisible"></myMessage>
  363. </fullscreen>
  364. </template>
  365. <script>
  366. import eltabs from "../../../components/el-tabs";
  367. import mySearch from "../../../components/search.vue";
  368. import myMessage from "../../../components/myMessage.vue"
  369. import toolList from '../../../components/toolList'
  370. import myUpload from '../../../components/uploadfour'
  371. import tableList from "../../../components/el-formfour";
  372. import Workflow from "../../../components/workflowBasexcwls";
  373. import getConfig from '../../../config/dev.js'
  374. // import Workflow from "../../../components/workflow";
  375. // import WorkflowEntrance from "../../../components/workflowEntrance";
  376. import {
  377. getTodoBase,
  378. getDoneBase,
  379. } from "../../../http/api.js";
  380. export default {
  381. components: {
  382. mySearch,
  383. myMessage,
  384. toolList,
  385. myUpload,
  386. eltabs,
  387. tableList,
  388. Workflow,
  389. },
  390. data() {
  391. // const regionName = (rule, value, callback) => {
  392. // if (!this.infolist.regionName) {
  393. // callback(new Error('不能为空'))
  394. // } else {
  395. // callback()
  396. // }
  397. // }
  398. // const advTypeDesc = (rule, value, callback) => {
  399. // if (!this.infolist.advTypeDesc) {
  400. // callback(new Error('不能为空'))
  401. // } else {
  402. // callback()
  403. // }
  404. // }
  405. return {
  406. requestForm: {
  407. fresourceId: getConfig().materialApplicationdsfresourceId,
  408. processDefinitionKey: "xcwl_cit_process",
  409. processDefinitionKey1: "xcwl_pro_process",
  410. // processDefinitionKeys: "xcwl_cit_process",
  411. taskId: "",
  412. },
  413. request_form: {
  414. userId: "",
  415. userName: "",
  416. path: this.$router.currentRoute.name,
  417. userCode: JSON.parse(window.sessionStorage.userInfo).loginNo,
  418. title: "",
  419. businessKey: "",
  420. processDefinitionKey: "xcwl_cit_process",
  421. },
  422. processDefinitionKey1: "xcwl_pro_process",
  423. lastManList: [],
  424. tabList: [
  425. {
  426. index: "first",
  427. label: "我的待办",
  428. number: "",
  429. name: "prosss_key",
  430. },
  431. {
  432. index: "two",
  433. label: "我的已办",
  434. number: "",
  435. },
  436. {
  437. index: "three",
  438. label: "我发起的",
  439. number: "",
  440. },
  441. ],
  442. Table: {},
  443. adminpageData: {
  444. total: 15, // 总条数
  445. pageSizes: 10, // 每页数量
  446. pageNum: 1, // 页码
  447. },
  448. firstTable: {
  449. name: "first",
  450. height: "350",
  451. titledata: [
  452. {
  453. label: "业务名称",
  454. prop: "needName",
  455. width: 200,
  456. },
  457. {
  458. label: "地市",
  459. prop: "region",
  460. width: 200,
  461. },
  462. {
  463. label: "区县",
  464. prop: "district",
  465. width: 200,
  466. },
  467. {
  468. label: "渠道/小区/校园名称",
  469. prop: "channelQuartersSchool",
  470. width: 200,
  471. },
  472. {
  473. label: "使用场景",
  474. prop: "useCase",
  475. width: 200,
  476. },
  477. {
  478. label: "物料名称",
  479. prop: "material",
  480. width: 200,
  481. },
  482. {
  483. label: "规格尺寸",
  484. prop: "spec",
  485. width: 100,
  486. },
  487. {
  488. label: "长",
  489. prop: "chang",
  490. width: 100,
  491. },
  492. {
  493. label: "宽",
  494. prop: "kuan",
  495. width: 100,
  496. },
  497. {
  498. label: "横/竖",
  499. prop: "hengShu",
  500. width: 100,
  501. },
  502. {
  503. label: "系数",
  504. prop: "coefficient",
  505. width: 100,
  506. },
  507. // {
  508. // label: "单价",
  509. // prop: "price",
  510. // width: 100,
  511. // },
  512. {
  513. label: "数量",
  514. prop: "quantity",
  515. width: 100,
  516. },
  517. {
  518. label: "麦穗",
  519. prop: "gys1Price",
  520. width: 100,
  521. },
  522. {
  523. label: "神笔",
  524. prop: "gys2Price",
  525. width: 100,
  526. },
  527. {
  528. label: "江苏邮电",
  529. prop: "gys3Price",
  530. width: 100,
  531. },
  532. {
  533. label: "湖州绿包",
  534. prop: "gys4Price",
  535. width: 100,
  536. },
  537. {
  538. label: "状态",
  539. prop: "taskname",
  540. width: 200,
  541. },
  542. ], //表格头
  543. data: [
  544. {
  545. label: "文件标题", // 操作名
  546. handleRow: (e, r, o) => {
  547. this.operationZuo(r);
  548. }
  549. }
  550. ], //内容数据
  551. loading: true,
  552. pageData: {
  553. total: 100, // 总条数
  554. pageSize: 10, // 每页数量
  555. pageNum: 1, // 页码
  556. },
  557. isSelection: false, // 表格有多选时设置
  558. isOperation: false, // 表格有操作列时设置
  559. isIndex: false, // 列表序号
  560. operation: {
  561. // 表格有操作列时设置
  562. label: "操作", // 列名
  563. width: "50", // 根据实际情况给宽度
  564. data: [
  565. {
  566. label: "任务下发", // 操作名称
  567. type: "", //按钮类型
  568. handleRow: function (e, r, o) {
  569. // getinform
  570. // this.getinform(r);
  571. }, // 自定义事件
  572. },
  573. ],
  574. },
  575. },
  576. twoTable: {
  577. name: "first",
  578. height: "350",
  579. titledata: [
  580. {
  581. label: "业务名称",
  582. prop: "needName",
  583. width: 200,
  584. },
  585. {
  586. label: "地市",
  587. prop: "region",
  588. width: 200,
  589. },
  590. {
  591. label: "区县",
  592. prop: "district",
  593. width: 200,
  594. },
  595. {
  596. label: "渠道/小区/校园名称",
  597. prop: "channelQuartersSchool",
  598. width: 200,
  599. },
  600. {
  601. label: "使用场景",
  602. prop: "useCase",
  603. width: 200,
  604. },
  605. {
  606. label: "物料名称",
  607. prop: "material",
  608. width: 200,
  609. },
  610. {
  611. label: "规格尺寸",
  612. prop: "spec",
  613. width: 100,
  614. },
  615. {
  616. label: "长",
  617. prop: "chang",
  618. width: 100,
  619. },
  620. {
  621. label: "宽",
  622. prop: "kuan",
  623. width: 100,
  624. },
  625. {
  626. label: "横/竖",
  627. prop: "hengShu",
  628. width: 100,
  629. },
  630. {
  631. label: "系数",
  632. prop: "coefficient",
  633. width: 100,
  634. },
  635. // {
  636. // label: "单价",
  637. // prop: "price",
  638. // width: 100,
  639. // },
  640. {
  641. label: "数量",
  642. prop: "quantity",
  643. width: 100,
  644. },
  645. {
  646. label: "麦穗",
  647. prop: "gys1Price",
  648. width: 100,
  649. },
  650. {
  651. label: "神笔",
  652. prop: "gys2Price",
  653. width: 100,
  654. },
  655. {
  656. label: "江苏邮电",
  657. prop: "gys3Price",
  658. width: 100,
  659. },
  660. {
  661. label: "湖州绿包",
  662. prop: "gys4Price",
  663. width: 100,
  664. },
  665. {
  666. label: "状态",
  667. prop: "taskname",
  668. width: 200,
  669. },
  670. ], //表格头
  671. data: [
  672. {
  673. label: "文件标题", // 操作名
  674. handleRow: (e, r, o) => {
  675. this.operationZuo(r);
  676. }
  677. }
  678. ], //内容数据
  679. loading: true,
  680. pageData: {
  681. total: 100, // 总条数
  682. pageSize: 10, // 每页数量
  683. pageNum: 1, // 页码
  684. },
  685. isSelection: false, // 表格有多选时设置
  686. isOperation: false, // 表格有操作列时设置
  687. isIndex: false, // 列表序号
  688. operation: {
  689. // 表格有操作列时设置
  690. label: "操作", // 列名
  691. width: "50", // 根据实际情况给宽度
  692. data: [
  693. {
  694. label: "任务下发", // 操作名称
  695. type: "", //按钮类型
  696. handleRow: function (e, r, o) {
  697. // getinform
  698. // this.getinform(r);
  699. }, // 自定义事件
  700. },
  701. ],
  702. },
  703. },
  704. gysopt: [
  705. ],
  706. useCaseopt: [
  707. {
  708. dataCode: "1",
  709. dataName: "小区"
  710. },
  711. {
  712. dataCode: "2",
  713. dataName: "校园"
  714. },
  715. {
  716. dataCode: "3",
  717. dataName: "营业厅-VI改造-自有渠道"
  718. },
  719. {
  720. dataCode: "4",
  721. dataName: "营业厅-常规物料-自有渠道"
  722. },
  723. {
  724. dataCode: "5",
  725. dataName: '营业厅-VI改造-合作渠道'
  726. },
  727. {
  728. dataCode: "6",
  729. dataName: '营业厅-常规物料-合作渠道'
  730. },
  731. {
  732. dataCode: "7",
  733. dataName: "政企"
  734. }
  735. ],
  736. optionList: [
  737. {
  738. id: 1,
  739. value: "自有渠道",
  740. },
  741. {
  742. id: 2,
  743. value: "合作渠道",
  744. },
  745. {
  746. id: 3,
  747. value: "家庭市场",
  748. },
  749. {
  750. id: 4,
  751. value: "个人市场",
  752. },
  753. {
  754. id: 5,
  755. value: "政企市场",
  756. },
  757. ],
  758. metirialOpt: [
  759. {
  760. materialNo: "6",
  761. metirialName: '常规物料'
  762. },
  763. {
  764. materialNo: "7",
  765. metirialName: "政企物料"
  766. }
  767. ],
  768. searchList: [
  769. {
  770. type: 'input',
  771. tit: '业务名称',
  772. value: '',
  773. width: '32%',
  774. },
  775. {
  776. type: 'sel',
  777. tit: '状态',
  778. value: '',
  779. width: '32%',
  780. options: [
  781. {
  782. dataCode: "0",
  783. dataName: "待审批"
  784. },
  785. {
  786. dataCode: "1",
  787. dataName: "待确认"
  788. },
  789. {
  790. dataCode: "2",
  791. dataName: "待验收"
  792. },
  793. {
  794. dataCode: "3",
  795. dataName: "已完成"
  796. }
  797. ]
  798. },
  799. {
  800. type: 'date',
  801. tit: '申请时间',
  802. value: '',
  803. width: '32%',
  804. },
  805. ],
  806. rules: {
  807. cycle: [{ type: "array", required: true, trigger: "blur", message: "下单周期不能为空" }],
  808. needCode: [{ required: true, trigger: "blur", message: "需求编号不能为空" }],
  809. businessName: [{ required: true, trigger: "blur", message: "业务名称不能为空" }],
  810. },
  811. childname: "first",
  812. tooltit: '物料申请管理',
  813. // applyType: "省",
  814. fullscreen: false,
  815. total: 0,
  816. pageSize: 1,
  817. pageNo: "1",
  818. page: "1",
  819. selectLetter: "",
  820. tableData: [],
  821. tableData1: [],
  822. typests: false, //修改弹窗
  823. dialogStatus: false,
  824. disableStatus: false,
  825. dialogVisible1: false,
  826. treeList: [], //候选人列表
  827. textarea: "未填写意见",
  828. destroy: false,
  829. infomaterType: [],
  830. infolist: [],
  831. xiugaizhuan: false,
  832. deal: true,
  833. baocun: true,
  834. rulelist: [],
  835. wfFileShareAttachList: [],
  836. teshuhuanjie: [],
  837. isWorkflowStatus: false,
  838. titname: '',
  839. infolist: {},
  840. searchBox: {},
  841. userInfo: {},
  842. params: {},
  843. centerDialogVisible: false,
  844. dialogVisible: false,
  845. messTit: '',
  846. delid: '',
  847. loading: false,
  848. loadinged: false,
  849. updisabled: false,
  850. fileInfo: {
  851. limit: 10,
  852. url: '/market/waf/uploadByMinio',
  853. fileList: []
  854. },
  855. infoApply: {},
  856. rovaList: [],
  857. applicationDialogStatus: false,
  858. approvalinfolist: {
  859. opinionradio: 1
  860. },
  861. pickerOptions0: {
  862. disabledDate(time) {
  863. return time.getTime() < Date.now() - 8.64e7; //如果没有后面的-8.64e7就是不可以选择今天的
  864. },
  865. },
  866. stsArr: ['待审批', '待确认', '待验收', '已完成'],
  867. provinceCityArr: ['省', "地市", "区县"],
  868. loginNoStr: "",
  869. cityWoId: "",
  870. }
  871. },
  872. watch: {
  873. 'infolist.tabletaskName': {
  874. handler(newVal, oldVal) {
  875. let rule1 = {
  876. gys: [
  877. { required: true, validator: this.validatorFile, trigger: "blur" },
  878. ],
  879. }
  880. let rule2 = {
  881. districtScore: [
  882. { required: true, validator: this.validatorDafen, trigger: "blur" },],
  883. materialUrl: [
  884. { required: true, validator: this.validatorLianjie, trigger: "blur" },],
  885. }
  886. if (newVal === '省公司宣传负责人') {
  887. this.rules = { ...this.rules, ...rule1 }
  888. }
  889. else if (newVal === '区县公司负责人') {
  890. this.rules = { ...this.rules, ...rule2 }
  891. }
  892. },
  893. deep: true,
  894. },
  895. },
  896. methods: {
  897. clickTabs(name) {
  898. this.pageNo = "1";
  899. this.page = "1";
  900. this.childname = name;
  901. if (name == "first") {
  902. this.Table = this.firstTable;
  903. this.getTodoList();
  904. } else if (name == "two") {
  905. this.Table = this.twoTable;
  906. this.haveDone();
  907. } else {
  908. this.Table = {}
  909. this.getIssueList();
  910. }
  911. },
  912. changeNum(val) {
  913. this.page = val;
  914. this.pageNo = val;
  915. switch (this.childname) {
  916. case "first":
  917. this.getTodoList();
  918. // this.iniTiate();
  919. break;
  920. case "two":
  921. this.haveDone();
  922. break;
  923. case "three":
  924. // this.iniTiate();
  925. // this.Table = this.thirdTable;
  926. }
  927. },
  928. clickDemand(e, r) {
  929. if (e === "业务名称") {
  930. if (this.childname == "first") {
  931. }
  932. if (this.childname == "two") {
  933. this.disableStatus = true;
  934. this.deal = false;
  935. this.baocun = false;
  936. this.xiugaizhuan = true;
  937. // this.shanchu = false;
  938. // this.xinzeng = false;
  939. }
  940. if (this.childname == "three") {
  941. // this.shanchu = false;
  942. // this.xinzeng = false;
  943. // this.isdisabled = true;
  944. // if(r.taskName == "起草"){
  945. this.deal = false;
  946. this.baocun = false;
  947. // }else{
  948. // this.deal = false;
  949. // this.baocun = false;
  950. // }
  951. }
  952. this.operationZuo(r); //点标题
  953. this.clickForm(r); //流程追踪
  954. }
  955. },
  956. chakanfaqi(r) {
  957. this.operationZuo(r); //点标题
  958. this.deal = false;
  959. this.baocun = false;
  960. this.clickForm1(r)
  961. },
  962. // operationZuo(){
  963. // this.dialogVisible = true;
  964. // },
  965. //点击标题
  966. operationZuo(r) {
  967. let list = {}
  968. list.id = r.id,
  969. this.$http({
  970. url: "/market/xcwlProcess/query",
  971. method: "post",
  972. headers: {
  973. "Content-Type": "application/json",
  974. },
  975. data: list,
  976. }).then((res) => {
  977. this.dialogVisible = true;
  978. this.infolist = res.data;
  979. this.infolist.businessName = res.data.xcwlProProcessList[0].needName;
  980. this.infomaterType.riqi = res.data.riqi;
  981. this.infomaterType.region = res.data.region;
  982. this.infomaterType = res.data.xcwlProProcessList;
  983. this.fileInfo.fileList = res.data.mkFileShareAttachList;
  984. this.infolist.cycle = res.data.cycleList;
  985. this.infolist.resourceId = r.resourceId;
  986. this.infolist.taskId = r.taskId;
  987. this.infolist.id = r.id;
  988. this.infolist.createId = r.createId;
  989. this.infolist.tabletaskName = r.taskname;
  990. this.infolist.gys = res.data.xcwlProProcessList[0].selectedGys;
  991. this.infolist.districtScore = res.data.xcwlProProcessList[0].districtScore;
  992. this.infolist.materialUrl = res.data.xcwlProProcessList[0].materialUrl;
  993. if (r.taskName != "起草") {
  994. this.disableStatus = true;
  995. this.updisabled = true; //上传附件
  996. } else {
  997. this.updisabled = false;
  998. }
  999. if (this.infolist.tabletaskName === "起草" || this.infolist.tabletaskName === "省公司宣传负责人" || this.infolist.tabletaskName === "区县公司负责人") {
  1000. this.baocun = true;
  1001. } else {
  1002. this.baocun = false;
  1003. }
  1004. this.$http({
  1005. url: "/market/cadvSupplier/queryList",
  1006. method: "post",
  1007. headers: {
  1008. "Content-Type": "application/json",
  1009. },
  1010. data: {},
  1011. }).then((res) => {
  1012. this.gysopt = res.data;
  1013. });
  1014. });
  1015. },
  1016. uploadBack(v) {
  1017. this.attList = v;
  1018. this.ruleForm.wfFileShareAttachList = v;
  1019. console.log(this.ruleForm.wfFileShareAttachList);
  1020. // console.log(this.attList);
  1021. },
  1022. validatormk(rule, value, callback) {
  1023. console.log(this.ruleForm.wfFileShareAttachList)
  1024. if (this.ruleForm.wfFileShareAttachList == null) {
  1025. console.log(111);
  1026. callback(new Error('请上传附件'));
  1027. } else {
  1028. callback();
  1029. }
  1030. },
  1031. gysMing(n, ev) {
  1032. let that = this;
  1033. let hh = that.gysopt.filter(function (c, i, a) {
  1034. if (c.name == that.infolist.gys) {
  1035. return c;
  1036. }
  1037. });
  1038. this.selectLetter = hh[0].code;
  1039. // console.log(this.selectLetter);
  1040. },
  1041. dealwith() {
  1042. if (this.infolist.tabletaskName == "省公司宣传负责人" || this.infolist.tabletaskName == "区县公司负责人") {
  1043. if (this.teshuhuanjie.length == 0) {
  1044. this.$message.error("请先点击保存");
  1045. } else {
  1046. this.dialogVisible1 = true;
  1047. this.request_form.title = '[市场经营管理平台]-' + '地市宣传物料申请及审批-' + this.infolist.businessName;
  1048. }
  1049. } else {
  1050. this.dialogVisible1 = true;
  1051. this.request_form.title = '[市场经营管理平台]-' + '地市宣传物料申请及审批-' + this.infolist.businessName;
  1052. }
  1053. },
  1054. updatexiuform(r) {
  1055. this.typests = true;
  1056. this.rulelist = r;
  1057. },
  1058. closediaform() {
  1059. this.typests = false;
  1060. },
  1061. //更新表格
  1062. gengxinge() {
  1063. this.typests = false;
  1064. let rulelistform = {}
  1065. rulelistform.metirialName = this.rulelist.material;
  1066. rulelistform.quantity = this.rulelist.quantity;
  1067. rulelistform.ratio = this.rulelist.coefficient;
  1068. this.$http({
  1069. url: "/market/xcwlProcessImport/getPriByMetirialName",
  1070. method: "post",
  1071. headers: {
  1072. "Content-Type": "application/json",
  1073. },
  1074. data: rulelistform,
  1075. }).then((res) => {
  1076. this.infomaterType[0].gys1Price = res.data.body.gys1Price;
  1077. this.infomaterType[0].gys2Price = res.data.body.gys2Price;
  1078. this.infomaterType[0].gys3Price = res.data.body.gys3Price;
  1079. this.infomaterType[0].gys4Price = res.data.body.gys4Price;
  1080. });
  1081. },
  1082. validatorFile(rule, value, callback) {
  1083. if (this.infolist.gys == null) {
  1084. callback(new Error('请选择供应商'));
  1085. } else {
  1086. callback();
  1087. }
  1088. },
  1089. validatorDafen(rule, value, callback) {
  1090. if (this.infolist.districtScore == null || "") {
  1091. callback(new Error('请输入区县打分'));
  1092. } else {
  1093. callback();
  1094. }
  1095. },
  1096. validatorLianjie(rule, value, callback) {
  1097. if (this.infolist.materialUrl == null || "") {
  1098. callback(new Error('请输入物料验证材料链接'));
  1099. } else {
  1100. callback();
  1101. }
  1102. },
  1103. //任务下发
  1104. getinform(r) {
  1105. this.infolist = r;
  1106. this.infolist.id = r.id;
  1107. this.request_form.businessKey = r.id;
  1108. this.request_form.title = '[市场经营管理平台]-' + '地市宣传物料申请及审批-' + r.needName;
  1109. this.getUserIds();
  1110. },
  1111. //获取userID
  1112. getUserIds() {
  1113. let id = JSON.parse(window.sessionStorage.userInfo).loginNo
  1114. this.$http({
  1115. url: "/market//api/user/info/queryNodePers?params=" + id,
  1116. method: "post",
  1117. headers: {
  1118. "Content-Type": "application/json",
  1119. },
  1120. data: {
  1121. // params: JSON.parse(window.sessionStorage.userInfo).loginNo,
  1122. },
  1123. }).then((res) => {
  1124. // console.log(res.data[0].children);
  1125. this.request_form.userName = res.data[0].children[0].loginNameStr;
  1126. this.request_form.userId = res.data[0].children[0].loginNoStr;
  1127. this.clickHandle(this.infolist);
  1128. });
  1129. },
  1130. async clickHandle(e) {
  1131. let _this = this;
  1132. let obj = {
  1133. url: this.$url.formList.startWork, //开始工作流接口
  1134. data: _this.request_form,
  1135. status: "form",
  1136. headers: {
  1137. "Content-Type": "application/x-www-form-urlencoded",
  1138. },
  1139. };
  1140. let res = await this.common.httpPost(obj, success);
  1141. function success(data) {
  1142. _this.infolist.processId = data.data;
  1143. let list = {
  1144. id: e.id,
  1145. // taskId:_this.formId,
  1146. processId: data.data,
  1147. tableName: _this.processDefinitionKey1,
  1148. // resourceId: _this.nextPath.currentShape[0].resourceId,
  1149. };
  1150. _this.setUpdate(list);
  1151. }
  1152. },
  1153. //更新工作流接口
  1154. setUpdate(e) {
  1155. this.$http({
  1156. url: "/market/waf/updateBase",
  1157. method: "post",
  1158. headers: {
  1159. "Content-Type": "application/json",
  1160. },
  1161. data: e,
  1162. }).then((res) => {
  1163. this.infolist.taskId = res.data.body[0].taskId;
  1164. this.clickHandles();
  1165. });
  1166. },
  1167. //是否最后一个人
  1168. async getLastName() {
  1169. let list = {
  1170. procinstid: this.infolist.processId,
  1171. taskid: this.infolist.taskId,
  1172. // taskId:e.taskId
  1173. };
  1174. let _this = this;
  1175. let obj = {
  1176. url: this.$url.formList.getLastName, //流程追踪接口
  1177. data: list,
  1178. // status: "form",
  1179. headers: {
  1180. "Content-Type": "application/json",
  1181. },
  1182. };
  1183. let res = await this.common.httpPost(obj, success);
  1184. function success(data) {
  1185. if (data.lastMan == true) {
  1186. _this.adminResourceId = data.adminResourceId;
  1187. }
  1188. _this.destroy = true;
  1189. _this.dialogVisible1 = true;
  1190. _this.isWorkflowStatus = data.lastMan == false ? false : true;
  1191. _this.lastManList = data;
  1192. }
  1193. },
  1194. getNextPath(e) {
  1195. let list = {
  1196. // fresourceId: "bf79721c-33f3-11ed-ba0b-00505687dcd3", //测试环境
  1197. fresourceId: this.requestForm.fresourceId, // 本地环境
  1198. processId: this.requestForm.processDefinitionKey,
  1199. // processId: this.infolist.processId,
  1200. // fresourceId: "0d94de8a-0281-11ed-a302-4ae7da54db39", // 本地环境
  1201. // processId: "request_form_process",
  1202. // resourceId: e,
  1203. };
  1204. if (e) {
  1205. // this.propsList = [];
  1206. list.resourceId = e;
  1207. }
  1208. this.$http({
  1209. url: "/market/waf/queryPath",
  1210. method: "post",
  1211. headers: {
  1212. "Content-Type": "application/json",
  1213. },
  1214. data: list,
  1215. }).then((res) => {
  1216. if (res.data.body.nextShapes[0].multi) {
  1217. // console.log('这是mulit节点');
  1218. if (res.data.body.nextShapes[0].multi.multi === "true") {
  1219. // console.log('这是mulit节点');
  1220. this.getLastName();
  1221. } else {
  1222. this.adminResourceId = ''
  1223. // console.log('这不是mulit节点');
  1224. this.destroy = true;
  1225. this.dialogVisible1 = true;
  1226. // this.getMetirialType();
  1227. }
  1228. } else {
  1229. this.adminResourceId = ''
  1230. // console.log('这不是mulit节点');
  1231. this.destroy = true;
  1232. this.dialogVisible1 = true;
  1233. // this.getMetirialType();
  1234. }
  1235. // if (this.infolist.processId) {
  1236. // } else {
  1237. // this.$message.error("请先点击保存按钮");
  1238. // }
  1239. });
  1240. },
  1241. //处理按钮,开始工作流接口
  1242. clickHandles() {
  1243. this.dialogVisible1 = true;
  1244. },
  1245. async clickForm(r) {
  1246. let list = {
  1247. processInstanceId: r.processId,
  1248. // taskId:e.taskId
  1249. };
  1250. let _this = this;
  1251. let obj = {
  1252. url: this.$url.formList.getCommentsByProcessId, //流程追踪接口
  1253. data: list,
  1254. headers: {
  1255. "Content-Type": "application/json",
  1256. },
  1257. };
  1258. let res = await this.common.httpPost(obj, success);
  1259. function success(data) {
  1260. _this.tableData1 = data.data.data;
  1261. data.data.data.map((item) => {
  1262. item.startTime = _this.$util.datetimeFormat(item.startTime);
  1263. item.endTime = _this.$util.datetimeFormat(item.endTime);
  1264. });
  1265. // _this.getProcess(e, data.data);
  1266. _this.tableData1 = data.data.data;
  1267. }
  1268. },
  1269. async clickForm1(r) {
  1270. let list = {
  1271. processInstanceId: r.processId,
  1272. // taskId:e.taskId
  1273. };
  1274. let _this = this;
  1275. let obj = {
  1276. url: this.$url.formList.getCommentsByProcessId, //流程追踪接口
  1277. data: list,
  1278. headers: {
  1279. "Content-Type": "application/json",
  1280. },
  1281. };
  1282. let res = await this.common.httpPost(obj, success);
  1283. function success(data) {
  1284. _this.tableData1 = data.data.data;
  1285. data.data.data.map((item) => {
  1286. item.startTime = _this.$util.datetimeFormat(item.startTime);
  1287. item.endTime = _this.$util.datetimeFormat(item.endTime);
  1288. });
  1289. // _this.getProcess(e, data.data);
  1290. _this.tableData1 = data.data.data;
  1291. }
  1292. },
  1293. updateForm() {
  1294. this.dialogVisible1 = false;
  1295. this.dialogVisible = false;
  1296. this.getIssueList();
  1297. this.getTodoList();
  1298. this.haveDone();
  1299. // this.refreshbtn();
  1300. },
  1301. adminhandleSizeChange(val) {
  1302. // console.log(`每页 ${val} 条`);
  1303. },
  1304. adminhandleCurrentChange(val) {
  1305. this.pageNo = val;
  1306. this.getIssueList()
  1307. // console.log(`当前页: ${val}`);
  1308. },
  1309. handleCloses() {
  1310. this.treeList = [];
  1311. this.textarea = "";
  1312. this.dialogVisible1 = false;
  1313. // this.getIssueList();
  1314. this.getTodoList();
  1315. this.haveDone();
  1316. this.getIssueList();
  1317. },
  1318. close() {
  1319. this.dialogVisible = false;
  1320. this.tableData1 = [];
  1321. },
  1322. //我发起列表
  1323. getIssueList(e) {
  1324. let list = {
  1325. applyType: "地市"
  1326. };
  1327. this.loading2 = true;
  1328. this.$http({
  1329. url: "/market/xcwlProcessImport/queryPage",
  1330. method: "post",
  1331. headers: {
  1332. "Content-Type": "application/json",
  1333. page: '{"pageNo":"' + this.pageNo + '","pageSize":"10"}',
  1334. },
  1335. data: list,
  1336. }).then((res) => {
  1337. this.tableData = res.data.data;
  1338. this.tabList[2].number = res.data.totalRecord;
  1339. this.adminpageData.total = res.data.totalRecord;
  1340. this.loading2 = false;
  1341. });
  1342. },
  1343. //待办列表
  1344. getTodoList(e, status) {
  1345. // this.loading2 = true;
  1346. let list = {
  1347. tableName: this.requestForm.processDefinitionKey1,
  1348. applyType: "地市"
  1349. };
  1350. if (e) {
  1351. list.taskId = e.taskId
  1352. }
  1353. this.$http({
  1354. url: "/market/xcwlProcess/queryTodoBase",
  1355. method: "post",
  1356. headers: {
  1357. "Content-Type": "application/json",
  1358. page: '{"pageNo":"' + this.pageNo + '","pageSize":"10"}',
  1359. },
  1360. data: list,
  1361. }).then((res) => {
  1362. if (status === 0) {
  1363. this.clickDemand("业务名称", res.data.data[0]);
  1364. }
  1365. this.firstTable.data = res.data.data;
  1366. this.firstTable.pageData.total = res.data.totalRecord;
  1367. this.tabList[0].number = res.data.totalRecord;
  1368. this.Table = this.firstTable;
  1369. // this.adminpageData.total = res.data.totalRecord;
  1370. // this.loading2 = false;
  1371. });
  1372. },
  1373. // getTodoList(){
  1374. // let list = {
  1375. // tableName: this.requestForm.processDefinitionKey,
  1376. // };
  1377. // // getInitiateBase getTodoBase
  1378. // getTodoBase(this.page,"",list).then((res)=>{
  1379. // this.firstTable.data = res.data.data;
  1380. // this.firstTable.pageData.total = res.data.totalRecord;
  1381. // // this.Table = this.firstTable;
  1382. // // this.tabList[0].number = res.data.totalRecord;
  1383. // })
  1384. // },
  1385. //已办
  1386. haveDone() {
  1387. // let list = {
  1388. // tableName : this.requestForm.processDefinitionKey
  1389. // }
  1390. // getDoneBase(this.page,"",list).then((res)=>{
  1391. // this.twoTable.data = res.data.data;
  1392. // this.twoTable.pageData.total = res.data.totalRecord;
  1393. // this.tabList[1].number = res.data.totalRecord;
  1394. // this.Table = this.twoTable;
  1395. // // this.tabList[1].number = res.data.totalRecord;
  1396. // })
  1397. let list = {
  1398. tableName: this.requestForm.processDefinitionKey1,
  1399. applyType: "地市"
  1400. };
  1401. this.$http({
  1402. url: "/market/xcwlProcess/queryDoneBase",
  1403. method: "post",
  1404. headers: {
  1405. "Content-Type": "application/json",
  1406. page: '{"pageNo":"' + this.pageNo + '","pageSize":"10"}',
  1407. },
  1408. data: list,
  1409. }).then((res) => {
  1410. this.twoTable.data = res.data.data;
  1411. this.twoTable.pageData.total = res.data.totalRecord;
  1412. this.tabList[1].number = res.data.totalRecord;
  1413. // this.Table = this.twoTable;
  1414. });
  1415. },
  1416. saveform() {
  1417. this.$refs.infolist.validate((valid) => {
  1418. if (valid) {
  1419. this.$message.success("保存成功");
  1420. let list = {}
  1421. list.id = this.infolist.id;
  1422. list.businessName = this.infolist.businessName;//业务名称
  1423. list.cycleList = [this.$util.datetimeFormat(this.infolist.cycle[0]), this.$util.datetimeFormat(this.infolist.cycle[1])];
  1424. list.needCode = this.infolist.needCode;
  1425. list.districtScore = this.infolist.districtScore;
  1426. list.gys = this.infolist.gys;
  1427. list.materialUrl = this.infolist.materialUrl;
  1428. list.xcwlProProcessList = this.infomaterType;
  1429. list.gysCode = this.infolist.tabletaskName == '省公司宣传负责人' ? this.selectLetter : null;
  1430. // list.xcwlProProcessList = this.multipleSelection;
  1431. if (this.attList == null) {
  1432. list.mkFileShareAttachList = this.fileInfo.fileList
  1433. } else {
  1434. list.mkFileShareAttachList = this.attList;
  1435. }
  1436. this.request_form.title = '[市场经营管理平台]-' + '地市宣传物料申请及审批-' + this.infolist.needName;
  1437. this.$http({
  1438. url: "/market/xcwlProcessImport/update",
  1439. method: "post",
  1440. headers: {
  1441. "Content-Type": "application/json",
  1442. },
  1443. data: list,
  1444. }).then((res) => {
  1445. this.teshuhuanjie = res.data;
  1446. // this.infomaterType = res.data;
  1447. // if(res.data){
  1448. // this.typests = false;
  1449. // return;
  1450. // }
  1451. });
  1452. } else {
  1453. this.$message.error("请完善表单信息");
  1454. }
  1455. });
  1456. },
  1457. download(u) {
  1458. // if (this.ruleForm.wfFileShareAttachList.length > 1) {
  1459. this.$http({
  1460. url: "/market/waf/downAllFileByMinio",
  1461. method: "post",
  1462. headers: {
  1463. "Content-Type": "application/json",
  1464. },
  1465. responseType: "blob",
  1466. data: { wfFileShareAttachList: this.fileInfo.fileList },
  1467. }).then((response) => {
  1468. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  1469. let blob = new Blob([response.data], {
  1470. type: "application/vnd.ms-excel",
  1471. });
  1472. window.navigator.msSaveOrOpenBlob(
  1473. blob,
  1474. new Date().getTime().toString() + ".zip"
  1475. );
  1476. } else {
  1477. /* 火狐谷歌的文件下载方式 */
  1478. var blob = new Blob([response.data]);
  1479. var downloadElement = document.createElement("a");
  1480. var href = window.URL.createObjectURL(blob);
  1481. downloadElement.href = href;
  1482. // downloadElement.download = this.ruleForm.fileName + ".zip";
  1483. downloadElement.download = "附件.zip";
  1484. document.body.appendChild(downloadElement);
  1485. downloadElement.click();
  1486. document.body.removeChild(downloadElement);
  1487. window.URL.revokeObjectURL(href);
  1488. }
  1489. if (this.infolist.authType === "3") {
  1490. this.dialogCli(10);
  1491. }
  1492. });
  1493. },
  1494. jumpadd() {
  1495. this.$router.push({
  1496. path: '/materialApplicationadd',
  1497. query: { applyType: '地市' },
  1498. });
  1499. this.setabList('物料宣传申请', '/materialApplicationadd');
  1500. },
  1501. jump(v, n) {
  1502. if (v === 1) {
  1503. // this.$router.push("/materialApplicationExa?id=" + n.id + "");
  1504. this.$router.push({
  1505. path: '/materialApplicationExa',
  1506. query: { cityWoId: n.cityWoId, id: n.id, btnS: 1 }
  1507. })
  1508. } else if (v === 2) {
  1509. this.$router.push("/materialApplicationDetail?id=" + n.id + "")
  1510. } else if (v === 3) {
  1511. let jumpParams = { cityWoId: n.cityWoId, countyWoId: n.countryWoId, woId: n.id, pcId: n.provinceCity };
  1512. sessionStorage.setItem("jumpParams", JSON.stringify(jumpParams))
  1513. if (n.provinceCity == 1 && n.nextStep == 7) {
  1514. this.$router.push({
  1515. path: '/subtaskList',
  1516. // query: { cityWoId: n.cityWoId, countyWoId: n.countryWoId, woId: n.id, }
  1517. // path: '/subtaskList/:name',
  1518. // name: 'subtaskList',
  1519. // params: { cityWoId: n.cityWoId, countyWoId: n.countryWoId, woId: n.id, }
  1520. })
  1521. } else if ((n.provinceCity == 1 && n.nextStep == 11) || (n.provinceCity == 2 && n.nextStep == 9) || (n.provinceCity == 3 && n.nextStep == 10)) {
  1522. this.$router.push({
  1523. path: '/acceptanceSituation',
  1524. // query: { cityWoId: n.cityWoId, countyWoId: n.countryWoId, woId: n.id, pcId: n.provinceCity}
  1525. // path: '/acceptanceSituation/:name',
  1526. // name: 'acceptanceSituation',
  1527. // params: { cityWoId: n.cityWoId, countyWoId: n.countryWoId, woId: n.id, pcId: n.provinceCity}
  1528. })
  1529. }
  1530. } else if (v === 4) {
  1531. // this.$router.push("/acceptance?cityWoId="+ n.cityWoId + "&countyWoId=" + n.countryWoId)
  1532. this.$router.push({
  1533. path: '/acceptance',
  1534. query: { cityWoId: n.cityWoId, countyWoId: n.countryWoId, woId: n.id }
  1535. })
  1536. }
  1537. },
  1538. setabList(n, p) {
  1539. let params = {
  1540. children: "",
  1541. name: n,
  1542. rountPath: p,
  1543. target: "_self",
  1544. };
  1545. for (let i = 0; i < this.$store.state.tabList.length; i++) {
  1546. if (this.$store.state.tabList[i].name === params.name) {
  1547. this.$store.state.tabList[i] = params;
  1548. }
  1549. }
  1550. let set = new Set([...this.$store.state.tabList, params]);
  1551. set.add(params);
  1552. this.$store.commit("setDefaultActive", params.rountPath);
  1553. this.$store.commit("setTabList", Array.from(set));
  1554. },
  1555. closedia() {
  1556. this.infolist = {};
  1557. this.dialogStatus = false;
  1558. this.approvalinfolist = {};
  1559. this.applicationDialogStatus = false;
  1560. },
  1561. //搜索数据
  1562. searchInfo(v) {
  1563. this.params = {};
  1564. v[0] ? this.params.bizName = v[0] : '';
  1565. v[1] ? this.params.sts = v[1] : '';
  1566. let timeFrom = '';
  1567. let timeTo = '';
  1568. if (v[2]) {
  1569. timeFrom = this.$formatDate(v[2], "YYYY-MM-DD") + ' 00:00:00'
  1570. timeTo = this.$formatDate(v[2], "YYYY-MM-DD") + ' 23:59:59'
  1571. }
  1572. timeFrom ? this.params.opTimeFrom = timeFrom : '';
  1573. timeTo ? this.params.opTimeTo = timeTo : '';
  1574. this.getList(this.params, this.pageSize);
  1575. },
  1576. //获取列表
  1577. getList(v, n) {
  1578. this.pageSize = n;
  1579. let _this = this;
  1580. // this.loading = true;
  1581. this.tableData = [];
  1582. this.$http({
  1583. url: "/market/cadvBusiMetirialWo/queryPage",
  1584. method: "post",
  1585. headers: {
  1586. "Content-Type": "application/json",
  1587. "page": '{"pageNo":"' + n + '","pageSize":"10"}'
  1588. },
  1589. data: v,
  1590. }).then((res) => {
  1591. this.tableData = res.data.body.pageList.data;
  1592. this.total = res.data.body.pageList.totalRecord;
  1593. this.loading = false;
  1594. });
  1595. },
  1596. // 分页
  1597. currchange(v) {
  1598. this.pageSize = v;
  1599. this.getList(this.params, this.pageSize);
  1600. },
  1601. //申请
  1602. dialogCheck(v, n) {
  1603. this.dialogStatus = true;
  1604. // 审批同意对话框
  1605. this.applicationDialogStatus = true;
  1606. this.infolist = Object.assign({}, n);
  1607. if (v === 1) {
  1608. this.titname = '查看';
  1609. this.disableStatus = true;
  1610. } else if (v === 2) {
  1611. this.titname = '审批';
  1612. this.disableStatus = false;
  1613. }
  1614. this.$http({
  1615. url: '/bpm/api/taskInit',
  1616. method: "post",
  1617. headers: {
  1618. "Content-Type": "application/json",
  1619. },
  1620. data: {
  1621. woNo: n.woNo
  1622. },
  1623. }).then((res) => {
  1624. this.infolist = Object.assign({}, res.data);
  1625. this.infoApply = JSON.parse(this.infolist.params.wo);
  1626. this.rovaList = res.data.taskList;
  1627. });
  1628. },
  1629. //添加
  1630. dialogCli(v) {
  1631. if (v === 1) {
  1632. this.infolist = {};
  1633. this.dialogStatus = false;
  1634. return
  1635. } else if (v === 5) {
  1636. if (this.approvalinfolist.opinionradio == 1) {
  1637. this.infolist.opTime = this.$formatDate(new Date(), "YYYY-MM-DD");
  1638. this.infolist.dealType = '2';
  1639. this.infolist.dealTypeDesc = this.approvalinfolist.opinion;
  1640. this.applicationDialogStatus = false;
  1641. this.submitInfo("/bpm/api/submitTask", this.infolist);
  1642. }
  1643. }
  1644. else {
  1645. this.infolist.opTime = this.$formatDate(new Date(), "YYYY-MM-DD");
  1646. if (this.titname === '添加') {
  1647. this.submitInfo("/bpm/api/addBpmPrePlugin");
  1648. } else if (this.titname === '审批') {
  1649. this.submitInfo("/bpm/api/updateBpmPrePlugin", v);
  1650. }
  1651. }
  1652. },
  1653. submitInfo(u) {
  1654. let _this = this;
  1655. //this.$refs.infolist.validate(valid => {
  1656. //if (valid) {
  1657. this.loadinged = true;
  1658. this.$http({
  1659. url: u,
  1660. method: "post",
  1661. headers: {
  1662. "Content-Type": "application/json",
  1663. },
  1664. data: this.infolist,
  1665. }).then((res) => {
  1666. this.loadinged = false;
  1667. if (res.data.result === 1) {
  1668. _this.$message({
  1669. message: res.data.desc,
  1670. type: 'error'
  1671. });
  1672. } else {
  1673. _this.$message({
  1674. message: '成功',
  1675. type: 'success'
  1676. });
  1677. _this.infolist = {};
  1678. _this.dialogStatus = false;
  1679. _this.getList({}, _this.pageSize);
  1680. }
  1681. });
  1682. //}
  1683. //})
  1684. },
  1685. closeMessage(v) {
  1686. this.centerDialogVisible = false;
  1687. let _this = this;
  1688. if (v === 1) {
  1689. _this.$http({
  1690. url: "/market/cadvBusiMetirialWo/del",
  1691. method: "post",
  1692. headers: {
  1693. "Content-Type": "application/json",
  1694. },
  1695. data: {
  1696. woId: this.delid
  1697. },
  1698. }).then((res) => {
  1699. if (res.data.result === 1) {
  1700. _this.$message({
  1701. message: res.data.desc,
  1702. type: 'error'
  1703. });
  1704. } else {
  1705. _this.$message({
  1706. message: '删除成功',
  1707. type: 'success'
  1708. });
  1709. _this.getList(this.params, this.pageSize);
  1710. }
  1711. });
  1712. }
  1713. },
  1714. //删除
  1715. delLine(v) {
  1716. this.centerDialogVisible = true;
  1717. this.messTit = '即将删除此条数据, 是否删除?';
  1718. this.delid = v.id;
  1719. },
  1720. //文件返回值
  1721. uploadBack(v) {
  1722. this.attList = v;
  1723. this.ruleForm.wfFileShareAttachList = v;
  1724. },
  1725. //功能栏
  1726. iconCli(v) {
  1727. if (v === 1) {
  1728. this.getList(this.params, this.pageSize);
  1729. }
  1730. if (v === 2) {
  1731. this.fullscreen = !this.fullscreen
  1732. }
  1733. },
  1734. getUser() {
  1735. this.userInfo = JSON.parse(window.sessionStorage.userInfo);
  1736. this.loginNoStr = this.userInfo.loginNoStr;
  1737. }
  1738. },
  1739. mounted() {
  1740. },
  1741. created() {
  1742. let status = JSON.stringify(this.$route.query) == "{}";
  1743. if (status) {
  1744. this.Table = this.firstTable;
  1745. this.haveDone();
  1746. this.getIssueList();
  1747. this.getUser();
  1748. this.getTodoList();
  1749. } else {
  1750. let { id, type } = this.$route.query;
  1751. let list = {
  1752. taskId: id,
  1753. tableName: this.tableName
  1754. };
  1755. this.Table = this.firstTable;
  1756. this.haveDone();
  1757. this.getIssueList();
  1758. this.getUser();
  1759. this.getTodoList(list, 0);//代办
  1760. }
  1761. }
  1762. }
  1763. </script>
  1764. <style scoped lang="scss">
  1765. .t-footer {
  1766. text-align: center;
  1767. padding: 20px;
  1768. margin: 20px 0 20px 0;
  1769. }
  1770. .info-lineform {
  1771. width: 100%;
  1772. display: block;
  1773. // padding-left: 20px;
  1774. div {
  1775. width: 50%;
  1776. display: inline-block;
  1777. }
  1778. span {
  1779. width: 80px;
  1780. display: inline-block;
  1781. text-align: left;
  1782. i {
  1783. color: red;
  1784. display: inline-block;
  1785. padding-right: 5px;
  1786. }
  1787. }
  1788. .el-select,
  1789. .el-input {
  1790. width: calc(100% - 100px);
  1791. }
  1792. .el-checkbox-group {
  1793. border: 1px solid #ddd;
  1794. padding-left: 20px;
  1795. height: 40px;
  1796. width: calc(100% - 100px);
  1797. border-radius: 5px;
  1798. }
  1799. }
  1800. .table-title {
  1801. width: 100%;
  1802. height: 50px;
  1803. margin-top: 100px;
  1804. line-height: 50px;
  1805. background-color: rgb(243, 250, 255);
  1806. // font-size: 18px;
  1807. font-weight: 700;
  1808. }
  1809. // ::v-deep.online .el-form-item__content {
  1810. // width: 98%;
  1811. // margin-left: 0 !important;
  1812. // }
  1813. ::v-deep .el-tabs__nav {
  1814. margin: 12px 0 0 12px;
  1815. }
  1816. ::v-deep .el-tabs__nav-wrap::after {
  1817. display: none;
  1818. }
  1819. ::v-deep .el-tabs__active-bar {
  1820. display: none;
  1821. }
  1822. ::v-deep .el-tabs .is-active {
  1823. color: #fff;
  1824. background-color: #0583cd;
  1825. }
  1826. ::v-deep .el-tabs__item {
  1827. padding: 0;
  1828. margin-right: 20px;
  1829. width: 166px;
  1830. text-align: center;
  1831. background-color: #d8eaf6;
  1832. color: #000;
  1833. height: 40px;
  1834. box-sizing: border-box;
  1835. line-height: 40px;
  1836. display: inline-block;
  1837. list-style: none;
  1838. font-size: 14px;
  1839. font-weight: 500;
  1840. color: #303133;
  1841. position: relative;
  1842. }
  1843. .onetab {
  1844. margin-bottom: 20px;
  1845. padding: 0 20px;
  1846. }
  1847. .titbox {
  1848. div {
  1849. float: right;
  1850. i {
  1851. font-size: 22px;
  1852. margin-left: 20px;
  1853. cursor: pointer;
  1854. }
  1855. }
  1856. }
  1857. .tabbox {
  1858. margin-top: 15px;
  1859. }
  1860. .pageBox {
  1861. text-align: right;
  1862. margin-top: 10px;
  1863. }
  1864. .info-line {
  1865. width: 100%;
  1866. display: block;
  1867. // padding-left: 20px;
  1868. margin: 20px 0 0 -35px;
  1869. div {
  1870. width: 50%;
  1871. display: inline-block;
  1872. }
  1873. span {
  1874. width: 80px;
  1875. display: inline-block;
  1876. text-align: left;
  1877. i {
  1878. color: red;
  1879. display: inline-block;
  1880. padding-right: 5px;
  1881. }
  1882. }
  1883. .el-select,
  1884. .el-input {
  1885. width: calc(100% - 100px);
  1886. }
  1887. }
  1888. .online {
  1889. width: 100%;
  1890. .el-select {
  1891. width: calc(100% - 100px);
  1892. }
  1893. span {
  1894. vertical-align: top;
  1895. }
  1896. .el-textarea {
  1897. width: calc(100% - 100px);
  1898. }
  1899. }
  1900. .adv-type {
  1901. margin-top: 20px;
  1902. display: flex;
  1903. justify-content: space-between;
  1904. flex-wrap: wrap;
  1905. // border: 1px solid #ddd;
  1906. border-radius: 5px;
  1907. padding: 20px;
  1908. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  1909. div {
  1910. width: 33%;
  1911. text-align: center;
  1912. height: 80px;
  1913. overflow: hidden;
  1914. min-width: 100px;
  1915. cursor: pointer;
  1916. padding-top: 10px;
  1917. margin: 10px 0;
  1918. }
  1919. div:hover {
  1920. background: #CFE8FC;
  1921. border-radius: 5px;
  1922. }
  1923. span {
  1924. width: 100%;
  1925. display: inline-block;
  1926. height: 40px;
  1927. // line-height: 40px;
  1928. i {
  1929. color: #0074D9;
  1930. font-size: 36px;
  1931. }
  1932. }
  1933. }
  1934. .boximgc {
  1935. display: flex;
  1936. flex-wrap: wrap;
  1937. width: 100% !important;
  1938. margin-top: 20px;
  1939. div {
  1940. display: inline-block;
  1941. width: 18% !important;
  1942. margin-right: 2%;
  1943. margin-bottom: 20px;
  1944. overflow: hidden;
  1945. border: 1px solid #ddd;
  1946. border-radius: 3px;
  1947. background: #fff;
  1948. position: relative;
  1949. height: 100px;
  1950. img {
  1951. width: 100%;
  1952. position: absolute;
  1953. top: 0;
  1954. bottom: 0;
  1955. margin: auto;
  1956. // height: 100%;
  1957. }
  1958. }
  1959. }
  1960. </style>