materialApplication.vue 65 KB

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