OpOfficialActivities.vue 78 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672
  1. <template>
  2. <div class="car_add visit-box">
  3. <div>
  4. <div class="communal-title">
  5. <div>{{ title }}</div>
  6. </div>
  7. <div class="ps-title">
  8. <span>PS:"请规范录入,未规范录入,造成公司损失或影响提成计算,需承担责任"</span>
  9. <!-- 客户名单 -->
  10. <el-popover
  11. placement="bottom"
  12. width="662"
  13. trigger="hover">
  14. <el-table max-height="600" border :data="rollcallarr">
  15. <el-table-column width="100" property="date" label="姓名">
  16. <template slot-scope="scope">
  17. {{ scope.row.lastName}}{{scope.row.firstName}}
  18. </template>
  19. </el-table-column>
  20. <el-table-column width="200" property="lastName" label="拼音">
  21. <template slot-scope="scope">
  22. {{ pinyingxing(scope.row.lastName) }}/{{ pinyingxing(scope.row.firstName) }}
  23. </template>
  24. </el-table-column>
  25. <el-table-column width="50" property="sex" label="性别">
  26. <template slot-scope="scope">
  27. {{ scope.row.sex==0?'男':'女'}}
  28. </template>
  29. </el-table-column>
  30. <el-table-column width="110" property="birthDay" label="生日">
  31. <template slot-scope="scope">
  32. {{ fgarr(scope.row.birthDay) }}
  33. </template>
  34. </el-table-column>
  35. <el-table-column width="200" property="idCardNo" label="身份证号码">
  36. <template slot-scope="scope">
  37. {{ scope.row.idCardNo }}
  38. </template>
  39. </el-table-column>
  40. </el-table>
  41. <span slot="reference" style="cursor: pointer;margin-left: 20px;">"移上查看客户名单"</span>
  42. </el-popover>
  43. </div>
  44. </div>
  45. <hr style='background-color:#5555; height:1px; border:none;margin: 8px 0;' />
  46. <div>
  47. <el-form :model="delegationInfo" label-width="100px" class="demo-ruleForm">
  48. <div style="display: flex;flex-wrap: wrap;">
  49. <div style="width: 385px;">
  50. <el-form-item label="团组名称:" label-width="160px">
  51. <el-select v-model="DiId" clearable filterable placeholder="团组选择" @change="DiIdChang"
  52. :disabled="isShow">
  53. <el-option v-for="item in delegationInfoList" :key="item.id" :label="item.teamName"
  54. :value="item.id">
  55. </el-option>
  56. </el-select>
  57. </el-form-item>
  58. </div>
  59. <div style="width: 385px;">
  60. <el-form-item label="团 号:" prop="tourCode" label-width="160px">
  61. <el-input placeholder="团号" v-model="delegationInfo.tourCode" :disabled="true">
  62. </el-input>
  63. </el-form-item>
  64. </div>
  65. <div style="width: 385px;">
  66. <el-form-item label="客户:" prop="clientName" label-width="160px">
  67. <el-input placeholder="客户" v-model="delegationInfo.clientName" :disabled="true">
  68. </el-input>
  69. </el-form-item>
  70. </div>
  71. <div style="width: 385px;">
  72. <el-form-item label="出访国家:" prop="visitCountry" label-width="160px">
  73. <el-input placeholder="出访国家" v-model="delegationInfo.visitCountry" :disabled="true">
  74. </el-input>
  75. </el-form-item>
  76. </div>
  77. </div>
  78. </el-form>
  79. <el-form :model="OpOfficialActivitiesDto" ref="OpOfficialActivitiesDto" :rules="OpOfficialActivitiesRules"
  80. label-width="100px" class="demo-ruleForm">
  81. <div style="display: flex;flex-wrap: wrap;">
  82. <div style="width: 385px;">
  83. <el-form-item label="公务形式:" prop="officialForm" label-width="160px">
  84. <el-select @change="Officchange" v-model="OpOfficialActivitiesDto.officialForm" clearable filterable placeholder="公务形式">
  85. <el-option v-for="item in OfficialFormList" :key="item.id" :label="item.name" :value="item.id">
  86. </el-option>
  87. </el-select>
  88. </el-form-item>
  89. </div>
  90. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  91. <el-form-item label="公务机构来源:" prop="officialForm" label-width="160px">
  92. <el-select v-model="OpOfficialActivitiesDto.dataSource" clearable filterable placeholder="公务机构来源">
  93. <el-option v-for="item in dataSourceList" :key="item.id" :label="item.name" :value="item.id">
  94. </el-option>
  95. </el-select>
  96. </el-form-item>
  97. </div>
  98. <div style="width: 385px;">
  99. <el-form-item label="国家:" prop="country" label-width="160px">
  100. <el-input clearable placeholder="国家" v-model="OpOfficialActivitiesDto.country">
  101. </el-input>
  102. </el-form-item>
  103. </div>
  104. <div style="width: 385px;">
  105. <el-form-item label="城市:" prop="area" label-width="160px">
  106. <el-input clearable placeholder="城市" v-model="OpOfficialActivitiesDto.area">
  107. </el-input>
  108. </el-form-item>
  109. </div>
  110. <div style="width: 385px;">
  111. <el-form-item label="公务单位:" prop="client" label-width="160px">
  112. <el-input clearable placeholder="公务单位" v-model="OpOfficialActivitiesDto.client">
  113. </el-input>
  114. </el-form-item>
  115. </div>
  116. <div style="width: 385px;">
  117. <el-form-item label="公务日期:" prop="date" label-width="160px">
  118. <el-date-picker
  119. value-format="yyyy-MM-dd"
  120. type="date"
  121. v-model="OpOfficialActivitiesDto.date"
  122. placeholder="选择日期">
  123. </el-date-picker>
  124. </el-form-item>
  125. </div>
  126. <div style="width: 385px;">
  127. <el-form-item label="公务时刻:" prop="time" label-width="160px">
  128. <el-time-picker v-model="OpOfficialActivitiesDto.time" format='HH:mm' value-format="HH:mm"
  129. placeholder="公务时刻">
  130. </el-time-picker>
  131. </el-form-item>
  132. </div>
  133. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  134. <el-form-item label="邀请方:" prop="type" label-width="160px">
  135. <el-select v-model="OpOfficialActivitiesDto.type" clearable filterable placeholder="邀请方选择">
  136. <el-option v-for="item in yqfarr" :key="item.id" :label="item.name"
  137. :value="item.id">
  138. </el-option>
  139. </el-select>
  140. <!-- <el-radio-group v-model="OpOfficialActivitiesDto.type">
  141. <el-radio :label=1>是</el-radio>
  142. <el-radio :label=0>否</el-radio>
  143. </el-radio-group> -->
  144. </el-form-item>
  145. </div>
  146. <!-- </div>
  147. <div style="display: flex;flex-wrap: wrap;"> -->
  148. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  149. <el-form-item label="公务方联系人职务:" prop="job" label-width="160px">
  150. <el-input clearable placeholder="公务方联系人职务" v-model="OpOfficialActivitiesDto.job">
  151. </el-input>
  152. </el-form-item>
  153. </div>
  154. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  155. <el-form-item label="公务方联系人:" prop="contact" label-width="160px">
  156. <el-input clearable placeholder="公务方联系人" v-model="OpOfficialActivitiesDto.contact">
  157. </el-input>
  158. </el-form-item>
  159. </div>
  160. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  161. <el-form-item label="电话:" prop="tel" label-width="160px">
  162. <el-input clearable placeholder="电话" v-model="OpOfficialActivitiesDto.tel">
  163. </el-input>
  164. </el-form-item>
  165. </div>
  166. <!-- </div>
  167. <div style="display: flex;flex-wrap: wrap;"> -->
  168. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  169. <el-form-item label="着装要求:" prop="dresscode" label-width="160px">
  170. <el-input clearable placeholder="着装要求" v-model="OpOfficialActivitiesDto.dresscode">
  171. </el-input>
  172. </el-form-item>
  173. </div>
  174. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  175. <el-form-item label="涉及领域:" prop="field" label-width="160px">
  176. <el-input clearable placeholder="涉及领域" v-model="OpOfficialActivitiesDto.field">
  177. </el-input>
  178. </el-form-item>
  179. </div>
  180. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  181. <el-form-item label="需要翻译:" prop="isNeedTrans" label-width="160px">
  182. <el-radio-group v-model="OpOfficialActivitiesDto.isNeedTrans">
  183. <el-radio :label=1>是</el-radio>
  184. <el-radio :label=0>否</el-radio>
  185. </el-radio-group>
  186. </el-form-item>
  187. </div>
  188. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  189. <el-form-item prop="translatorInfo.name" label="翻译人员:" label-width="160px">
  190. <!-- <el-select
  191. v-model="OpOfficialActivitiesDto.translatorIdItem"
  192. multiple
  193. collapse-tags
  194. placeholder="请选择">
  195. <el-option
  196. v-for="item in restaurants"
  197. :key="item.id"
  198. :label="item.name"
  199. :value="item.id">
  200. </el-option>
  201. </el-select> -->
  202. <el-autocomplete
  203. style="width: 100%;"
  204. class="inline-input"
  205. v-model="OpOfficialActivitiesDto.translatorInfo.name"
  206. :fetch-suggestions="querySearch"
  207. placeholder="请输入内容"
  208. @change="fyhandleChange"
  209. @select="handleSelect"
  210. ></el-autocomplete>
  211. <!-- <el-input clearable placeholder="翻译人员" v-model="OpOfficialActivitiesDto.translators">
  212. </el-input> -->
  213. </el-form-item>
  214. </div>
  215. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  216. <el-form-item prop="translatorInfo.area" label="翻译人员地区:" label-width="160px">
  217. <el-input clearable placeholder="翻译人员地区" v-model="OpOfficialActivitiesDto.translatorInfo.area">
  218. </el-input>
  219. </el-form-item>
  220. </div>
  221. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  222. <el-form-item prop="translatorInfo.sex" label="翻译性别:" label-width="160px">
  223. <el-radio-group v-model="OpOfficialActivitiesDto.translatorInfo.sex">
  224. <el-radio :label=0>未设置</el-radio>
  225. <el-radio :label=1>男</el-radio>
  226. <el-radio :label=2>女</el-radio>
  227. </el-radio-group>
  228. </el-form-item>
  229. </div>
  230. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  231. <el-form-item prop="translatorInfo.tel" label="翻译联系电话:" label-width="160px">
  232. <el-input clearable placeholder="翻译联系电话" v-model="OpOfficialActivitiesDto.translatorInfo.tel">
  233. </el-input>
  234. </el-form-item>
  235. </div>
  236. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  237. <el-form-item prop="translatorInfo.email" label="翻译邮箱号:" label-width="160px">
  238. <el-input clearable placeholder="翻译邮箱号" v-model="OpOfficialActivitiesDto.translatorInfo.email">
  239. </el-input>
  240. </el-form-item>
  241. </div>
  242. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  243. <el-form-item prop="translatorInfo.wechatNo" label="翻译微信号:" label-width="160px">
  244. <el-input clearable placeholder="翻译微信号" v-model="OpOfficialActivitiesDto.translatorInfo.wechatNo">
  245. </el-input>
  246. </el-form-item>
  247. </div>
  248. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  249. <el-form-item prop="translatorInfo.otherSocialAccounts" label="翻译其他账号:" label-width="160px">
  250. <el-input clearable placeholder="翻译其他账号" v-model="OpOfficialActivitiesDto.translatorInfo.otherSocialAccounts">
  251. </el-input>
  252. </el-form-item>
  253. </div>
  254. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  255. <el-form-item prop="translatorInfo.language" label="翻译语种:" label-width="160px">
  256. <el-input clearable placeholder="翻译语种" v-model="OpOfficialActivitiesDto.translatorInfo.language">
  257. </el-input>
  258. </el-form-item>
  259. </div>
  260. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  261. <el-form-item prop="translatorInfo.price" label="翻译费用:" label-width="160px">
  262. <el-input-number style="width:100%" :precision="2" placeholder="翻译费用" v-model="OpOfficialActivitiesDto.translatorInfo.price"
  263. :controls='false'></el-input-number>
  264. </el-form-item>
  265. </div>
  266. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337&&OpOfficialActivitiesDto.isNeedTrans==1" style="width: 385px;">
  267. <el-form-item prop="translatorInfo.currency" label="翻译币种:" label-width="160px">
  268. <el-select filterable v-model="OpOfficialActivitiesDto.translatorInfo.currency" placeholder="请选择币种">
  269. <el-option v-for="(item,index) in currencyarr" :key="index" :label="item.name"
  270. :value="item.id"></el-option>
  271. </el-select>
  272. </el-form-item>
  273. </div>
  274. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  275. <el-form-item label="是否付费:" prop="isPay" label-width="160px">
  276. <el-radio-group v-model="OpOfficialActivitiesDto.isPay">
  277. <el-radio :label=1>是</el-radio>
  278. <el-radio :label=0>否</el-radio>
  279. </el-radio-group>
  280. </el-form-item>
  281. </div>
  282. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  283. <el-form-item label="是否报批:" prop="type" label-width="160px">
  284. <el-radio-group v-model="OpOfficialActivitiesDto.isSubmitApproval">
  285. <el-radio :label=1>是</el-radio>
  286. <el-radio :label=0>否</el-radio>
  287. </el-radio-group>
  288. </el-form-item>
  289. </div>
  290. <!-- <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  291. <el-form-item label="性质:" prop="nature" label-width="160px">
  292. <el-input clearable placeholder="性质" v-model="OpOfficialActivitiesDto.nature">
  293. </el-input>
  294. </el-form-item>
  295. </div> -->
  296. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  297. <el-form-item label="邮箱号/微信号:" prop="emailOrWeChat" label-width="160px">
  298. <el-input clearable placeholder="邮箱号/微信号" v-model="OpOfficialActivitiesDto.emailOrWeChat">
  299. </el-input>
  300. </el-form-item>
  301. </div>
  302. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 385px;">
  303. <el-form-item label="网址:" prop="website" label-width="160px">
  304. <el-input clearable placeholder="网址" v-model="OpOfficialActivitiesDto.website">
  305. </el-input>
  306. </el-form-item>
  307. </div>
  308. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 770px;">
  309. <el-form-item label="公务地址:" prop="address" label-width="160px">
  310. <el-input type="textarea" :rows="3" placeholder="公务地址"
  311. v-model="OpOfficialActivitiesDto.address"></el-input>
  312. </el-form-item>
  313. </div>
  314. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 770px;">
  315. <el-form-item label="公务方背景:" prop="setting" label-width="160px">
  316. <el-input
  317. type="textarea"
  318. :rows="3"
  319. placeholder="公务方背景"
  320. v-model="OpOfficialActivitiesDto.setting">
  321. </el-input>
  322. </el-form-item>
  323. </div>
  324. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 770px;">
  325. <el-form-item style="position: relative;" label="公务请示范例:" label-width="160px">
  326. <el-input @blur="reqSampleblur" @focus="PostOfficialActivitiesReqReqSampleTips" type="textarea" :rows="3" placeholder="公务请示范例" v-model="OpOfficialActivitiesDto.reqSample">
  327. </el-input>
  328. <div v-show="reqSampleArrpd" class="reqSampleArr-ul">
  329. <div @click="reqSampleArrli(item)" class="reqSampleArr-li" v-for="(item,index) in reqSampleArr" :key="index">
  330. {{'['+item.teamName+']('+item.client+') '+item.reqSample}}
  331. </div>
  332. </div>
  333. </el-form-item>
  334. </div>
  335. <!-- </div>
  336. <div style="display: flex;"> -->
  337. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width: 770px;">
  338. <el-form-item label="暂定议程:" prop="trip" label-width="160px">
  339. <el-input type="textarea" :rows="3" placeholder="暂定议程"
  340. v-model="OpOfficialActivitiesDto.trip"></el-input>
  341. </el-form-item>
  342. </div>
  343. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width:770px;">
  344. <el-form-item label="参会人员:" prop="attendees" label-width="160px">
  345. <el-input type="textarea" :rows="3" placeholder="参会人员"
  346. v-model="OpOfficialActivitiesDto.attendees"></el-input>
  347. </el-form-item>
  348. </div>
  349. <div style="width:770px;">
  350. <el-form-item label="备注:" prop="remark" label-width="160px">
  351. <el-input type="textarea" :rows="3" placeholder="备注"
  352. v-model="OpOfficialActivitiesDto.remark"></el-input>
  353. </el-form-item>
  354. </div>
  355. <div v-if="OpOfficialActivitiesDto.officialForm!=384&&OpOfficialActivitiesDto.officialForm!=1337" style="width:770px;">
  356. <el-form-item label="邮件截图:" label-width="160px">
  357. <span style="display: inline-block;position: absolute;left: -82px;color: red;">*</span>
  358. <!-- <el-upload
  359. ref="Emailscreenshotref"
  360. :action="Emailscreenshoturl"
  361. :data="Emailscreenshotdata"
  362. :show-file-list="true"
  363. :auto-upload="false"
  364. :file-list="Emailscreenshot"
  365. :on-change="Emailscreenshotchange"
  366. :multiple="true"
  367. name="files">
  368. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  369. <el-button style="margin-left: 10px;" size="small" type="success"
  370. @click="UploadEmailscreenshot">上传</el-button>
  371. </el-upload> -->
  372. <el-upload
  373. accept="image/jpeg,image/png"
  374. class="pop-upload"
  375. ref="upload"
  376. action=""
  377. :file-list="fileList"
  378. :auto-upload="false"
  379. :multiple="true"
  380. :on-change="handleChange"
  381. :on-remove="handleRemove"
  382. :on-preview="handlePreview"
  383. :before-remove="beforeRemove"
  384. name="files"
  385. >
  386. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  387. <span style="color: red;font-size: 11px;">* 需上传,对方初次回复的邮件/微信截图和最后确认会面的信息截图(截图显示对方有效邮箱地址)</span>
  388. <!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
  389. </el-upload>
  390. </el-form-item>
  391. </div>
  392. </div>
  393. <!-- <div>
  394. <div>
  395. <div class="communal-title">
  396. <div>公务文件</div>
  397. </div>
  398. </div>
  399. <span style="color: red;">上传、删除文件时请谨慎!!!</span>
  400. <hr style='background-color:#5555; height:1px; border:none;' />
  401. <div style="display: flex;">
  402. <div style="width: 33%;">
  403. 公务方简介:
  404. <el-upload :file-list="uploadFiles1" ref="upload1" :on-success="upLoadSuccess1" :on-error="upLoadError1"
  405. :before-remove="beforeRemove1" :on-change="onChange1" :limit="1" :on-exceed="exceed1"
  406. :action="uploadURL" :headers="headers1" :auto-upload="false" :on-preview="onPreview1">
  407. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  408. <el-button style="margin-left: 10px;" size="small" type="success"
  409. @click="submitUpload1">上传</el-button>
  410. </el-upload>
  411. </div>
  412. <div style="width: 33%;">
  413. 公务活动图片:
  414. <el-upload :file-list="uploadFiles2" ref="upload2" :on-success="upLoadSuccess2" :on-error="upLoadError2"
  415. :before-remove="beforeRemove2" :on-change="onChange2" :limit="1" :on-exceed="exceed2"
  416. :action="uploadURL" :headers="headers2" :auto-upload="false" :on-preview="onPreview2">
  417. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  418. <el-button style="margin-left: 10px;" size="small" type="success"
  419. @click="submitUpload2">上传</el-button>
  420. </el-upload>
  421. </div>
  422. <div style="width: 33%;">
  423. 发票:
  424. <el-upload :file-list="uploadFiles3" ref="upload3" :on-success="upLoadSuccess3" :on-error="upLoadError3"
  425. :before-remove="beforeRemove3" :on-change="onChange3" :limit="1" :on-exceed="exceed3"
  426. :action="uploadURL" :headers="headers3" :auto-upload="false" :on-preview="onPreview3">
  427. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  428. <el-button style="margin-left: 10px;" size="small" type="success"
  429. @click="submitUpload3">上传</el-button>
  430. </el-upload>
  431. </div>
  432. </div>
  433. </div> -->
  434. <el-form-item>
  435. <div style="text-align: right;">
  436. <el-button type="primary" @click="addBtn">保存</el-button>
  437. <el-button v-if="btnPermissions&&confirmTheInvitation==0" @click="OfficialActivitiesInviteOperation(1)" type="primary">复核确认</el-button>
  438. <el-button v-if="btnPermissions&&confirmTheInvitation==1" @click="OfficialActivitiesInviteOperation(0)" type="primary">取消确认</el-button>
  439. <el-button @click="returnbtn">取消</el-button>
  440. </div>
  441. </el-form-item>
  442. </el-form>
  443. </div>
  444. </div>
  445. </template>
  446. <script>
  447. import { pinyin } from 'pinyin-pro';
  448. var validateBudget = (rule, value, callback) => {
  449. if (value.split('@')[0].includes('info')) {
  450. callback(new Error('请输正确格式!'));
  451. }else {
  452. callback();
  453. }
  454. }
  455. export default {
  456. data() {
  457. return {
  458. confirmTheInvitation:0,
  459. title: "新增公务出访客户资料",
  460. token: '',
  461. userId: 0,
  462. id: '',
  463. DiId: '',
  464. isShow: false,
  465. delegationInfo: {},
  466. delegationInfoList: [],//团组下拉框
  467. OfficialFormList: [],//公务形式下拉框
  468. dataSourceList: [],//来源下拉框
  469. deleFile: [],//文件数据
  470. headers: {
  471. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  472. TypeName: "A"
  473. },
  474. currencyarr:[],
  475. OpOfficialActivitiesDto: {
  476. status: 0,
  477. id: 0,
  478. diId: "",
  479. type: "",
  480. client: "",//
  481. date: "",//
  482. time: "",//
  483. address: "",
  484. contact: "",
  485. job: "",
  486. tel: "",
  487. officialForm: "",
  488. setting: "",
  489. dresscode: "",
  490. attendees: "",
  491. isNeedTrans: 0,
  492. translatorIdItem: [],
  493. language: "",
  494. nature: "",
  495. emailOrWeChat: "",
  496. website: "",
  497. trip: "",
  498. createUserId: 0,
  499. isPay:0,
  500. isSubmitApproval:0,
  501. remark: "",//
  502. country: "",//
  503. area: "",//
  504. field: "",
  505. reqSample: "",
  506. dataSource:"",//来源
  507. translatorInfo:{
  508. id:"",
  509. area: "",
  510. name: "",
  511. sex: 1,
  512. tel: "",
  513. email: "",
  514. wechatNo: "",
  515. otherSocialAccounts: "",
  516. language: "",
  517. price: "",
  518. currency: "",
  519. }
  520. },
  521. reqSampleArr:[],
  522. reqSampleArrpd:false,
  523. rollcallarr:[],
  524. OpOfficialActivitiesRules: {
  525. officialForm: [
  526. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  527. { required: true, message: '该信息为必填信息', trigger: 'change' }
  528. ],
  529. country: [
  530. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  531. ],
  532. area: [
  533. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  534. ],
  535. "translatorInfo.area": [
  536. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  537. ],
  538. "translatorInfo.sex": [
  539. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  540. ],
  541. "translatorInfo.name": [
  542. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  543. { required: true, message: '该信息为必填信息', trigger: 'change' },
  544. ],
  545. "translatorInfo.tel": [
  546. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  547. ],
  548. "translatorInfo.email": [
  549. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  550. ],
  551. "translatorInfo.wechatNo": [
  552. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  553. ],
  554. "translatorInfo.otherSocialAccounts": [
  555. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  556. ],
  557. "translatorInfo.language": [
  558. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  559. ],
  560. "translatorInfo.price": [
  561. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  562. ],
  563. "translatorInfo.currency": [
  564. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  565. ],
  566. inviteCosts: [
  567. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  568. { required: true, message: '该信息为必填信息', trigger: 'change' },
  569. ],
  570. client: [
  571. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  572. { required: true, message: '该信息为必填信息', trigger: 'change' },
  573. ],
  574. date: [
  575. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  576. { required: true, message: '该信息为必填信息', trigger: 'change' },
  577. ],
  578. time: [
  579. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  580. { required: true, message: '该信息为必填信息', trigger: 'change' },
  581. ],
  582. address: [
  583. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  584. { required: true, message: '该信息为必填信息', trigger: 'change' },
  585. ],
  586. contact: [
  587. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  588. { required: true, message: '该信息为必填信息', trigger: 'change' },
  589. ],
  590. job: [
  591. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  592. { required: true, message: '该信息为必填信息', trigger: 'change' },
  593. ],
  594. tel: [
  595. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  596. { required: true, message: '该信息为必填信息', trigger: 'change' },
  597. ],
  598. dresscode: [
  599. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  600. { required: true, message: '该信息为必填信息', trigger: 'change' },
  601. ],
  602. field: [
  603. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  604. { required: true, message: '该信息为必填信息', trigger: 'change' },
  605. ],
  606. language: [
  607. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  608. { required: true, message: '该信息为必填信息', trigger: 'change' },
  609. ],
  610. setting: [
  611. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  612. { required: true, message: '该信息为必填信息', trigger: 'change' },
  613. ],
  614. nature: [
  615. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  616. { required: true, message: '该信息为必填信息', trigger: 'change' },
  617. ],
  618. emailOrWeChat: [
  619. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  620. { required: true, message: '该信息为必填信息', trigger: 'change' },
  621. {validator: validateBudget, trigger: 'blur'},
  622. ],
  623. website: [
  624. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  625. { required: true, message: '该信息为必填信息', trigger: 'change' },
  626. ],
  627. type: [
  628. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  629. { required: true, message: '该信息为必填信息', trigger: 'change' },
  630. ],
  631. fileList: [
  632. { required: true, message: '该信息为必填信息', trigger: 'change' },
  633. ],
  634. isPay:[
  635. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  636. { required: true, message: '该信息为必填信息', trigger: 'change' },
  637. ],
  638. },
  639. uploadURL: "http://localhost:5256/api/Resource/UploadOfficialActivities",
  640. uploadFiles1: [],
  641. uploadFiles2: [],
  642. uploadFiles3: [],
  643. Emailscreenshot:[],
  644. Emailscreenshoturl:'http://132.232.92.186:8888/api/Resource/OfficialActivitiesUploadFiles',
  645. Emailscreenshotdata:{
  646. id:0,
  647. diId:0,
  648. currUserId:0,
  649. },
  650. Emailscreenshotheaders:{
  651. Authorization:"Content-Type:multipart/form-data"
  652. },
  653. headers1: {
  654. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  655. Type: "1",
  656. DiId: 0,
  657. CreateUserId: 0,
  658. },
  659. headers2: {
  660. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  661. Type: "2",
  662. DiId: 0,
  663. CreateUserId: 0,
  664. },
  665. headers3: {
  666. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  667. Type: "3",
  668. DiId: 0,
  669. CreateUserId: 0,
  670. },
  671. yqfarr:[],
  672. gwcfPermissions:[],
  673. btnPermissions:false,
  674. fileList:[],
  675. restaurants: [],
  676. }
  677. },
  678. methods: {
  679. //拼音
  680. pinyingxing(val){
  681. return pinyin(val, { toneType: 'none' }).toUpperCase();
  682. },
  683. //fenge
  684. fgarr(val){
  685. val=val+""
  686. return val.split(' ')[0]
  687. },
  688. querySearch(queryString, cb) {
  689. var restaurants = this.restaurants;
  690. var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
  691. // 调用 callback 返回建议列表的数据
  692. cb(results);
  693. },
  694. createFilter(queryString) {
  695. return (restaurant) => {
  696. return restaurant.value.replace(" ", "").toLowerCase().match(queryString.toLowerCase());
  697. };
  698. },
  699. fyhandleChange(item){
  700. if (item=='-') {
  701. this.OpOfficialActivitiesDto.translatorInfo.id=item.id;
  702. this.OpOfficialActivitiesDto.translatorInfo.area='-';
  703. this.OpOfficialActivitiesDto.translatorInfo.name='-';
  704. this.OpOfficialActivitiesDto.translatorInfo.sex=1;
  705. this.OpOfficialActivitiesDto.translatorInfo.tel='-';
  706. this.OpOfficialActivitiesDto.translatorInfo.email='-';
  707. this.OpOfficialActivitiesDto.translatorInfo.wechatNo='-';
  708. this.OpOfficialActivitiesDto.translatorInfo.otherSocialAccounts='-';
  709. this.OpOfficialActivitiesDto.translatorInfo.language='-';
  710. this.OpOfficialActivitiesDto.translatorInfo.price=0;
  711. this.OpOfficialActivitiesDto.translatorInfo.currency='';
  712. }
  713. },
  714. handleSelect(item) {
  715. this.OpOfficialActivitiesDto.translatorInfo={
  716. id:"",
  717. area: "",
  718. name: "",
  719. sex: 1,
  720. tel: "",
  721. email: "",
  722. wechatNo: "",
  723. otherSocialAccounts: "",
  724. language: "",
  725. price: "",
  726. currency: "",
  727. };
  728. this.OpOfficialActivitiesDto.translatorInfo.id=item.id;
  729. this.OpOfficialActivitiesDto.translatorInfo.area=item.area;
  730. this.OpOfficialActivitiesDto.translatorInfo.name=item.value;
  731. this.OpOfficialActivitiesDto.translatorInfo.sex=item.sex;
  732. this.OpOfficialActivitiesDto.translatorInfo.tel=item.tel;
  733. this.OpOfficialActivitiesDto.translatorInfo.email=item.email;
  734. this.OpOfficialActivitiesDto.translatorInfo.wechatNo=item.wechatNo;
  735. this.OpOfficialActivitiesDto.translatorInfo.otherSocialAccounts=item.otherSocialAccounts;
  736. this.OpOfficialActivitiesDto.translatorInfo.language=item.language;
  737. this.OpOfficialActivitiesDto.translatorInfo.price=item.price;
  738. this.OpOfficialActivitiesDto.translatorInfo.currency=item.currency;
  739. },
  740. //日期处理(日)
  741. TimeProcessingri(val){
  742. let datetime=new Date(val)
  743. let newsyear=datetime.getFullYear();
  744. let newsMonth=datetime.getMonth() + 1<10?'0'+(datetime.getMonth() + 1):datetime.getMonth() + 1;
  745. let newsday=datetime.getDate()<10?'0'+datetime.getDate():datetime.getDate();
  746. return newsyear+ '-' +newsMonth+ '-' + newsday;
  747. },
  748. //获取客户名单info
  749. PostTourClientListByDiId(val) {
  750. this.rollcallarr=[];
  751. var that = this
  752. var url = "/api/Groups/PostTourClientListByDiId"
  753. this.$axios({
  754. method: 'post',
  755. url: url,
  756. headers: {
  757. Authorization: 'Bearer ' + that.token
  758. },
  759. data: {
  760. portType:1,
  761. diid: val?val:that.DiId,
  762. pageId:104,
  763. userId:233
  764. }
  765. }).then(function (res) {
  766. if (res.data.code == 200) {
  767. that.rollcallarr=res.data.data;
  768. } else {
  769. that.$message.error(res.data.msg);
  770. }
  771. })
  772. },
  773. //团组下拉框
  774. OfficialActivitiesGroupNameList() {
  775. this.fullscreenLoading=true;
  776. var url = "/api/Resource/OfficialActivitiesGroupNameList"
  777. var that = this
  778. this.$axios({
  779. method: 'post',
  780. url: url,
  781. headers: {
  782. Authorization: 'Bearer ' + this.token
  783. },
  784. data: {
  785. portType: 3,
  786. pageIndex: 1,
  787. pageSize: 10000,
  788. groupName: '',
  789. }
  790. }).then(function (res) {
  791. if (res.data.code == 200) {
  792. that.delegationInfoList = res.data.data;
  793. for (let index = 0; index < that.delegationInfoList.length; index++) {
  794. if (that.delegationInfoList[index].id == parseInt(that.DiId)) {
  795. that.delegationInfo = that.delegationInfoList[index];
  796. break;
  797. }
  798. }
  799. that.OfficialActivitiesInitDatabase();
  800. }else{
  801. that.fullscreenLoading=false;
  802. }
  803. }).catch(function (error) {
  804. that.fullscreenLoading=false;
  805. that.$message.error("网络错误,请稍后重试");
  806. });
  807. },
  808. //基础数据初始化
  809. OfficialActivitiesInitDatabase() {
  810. var url = "/api/Resource/OfficialActivitiesInitDatabase"
  811. var that = this
  812. this.$axios({
  813. method: 'post',
  814. url: url,
  815. headers: {
  816. Authorization: 'Bearer ' + this.token
  817. },
  818. data: {
  819. portType: 3,
  820. pageIndex: 1,
  821. pageSize: 10000,
  822. groupName: '',
  823. }
  824. }).then(function (res) {
  825. if (res.data.code == 200) {
  826. that.currencyarr=res.data.data.currencyData;
  827. that.deleFile = res.data.data.deleFile;
  828. that.deleFile.forEach(function (item) {
  829. if (item.kind == 1) {
  830. that.uploadFiles1.push({
  831. name: item.fileName,
  832. url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  833. id: item.id
  834. });
  835. } else if (item.kind == 2) {
  836. that.uploadFiles2.push({
  837. name: item.fileName,
  838. url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  839. id: item.id
  840. });
  841. }
  842. else if (item.kind == 3) {
  843. that.uploadFiles3.push({
  844. name: item.fileName,
  845. url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  846. id: item.id
  847. });
  848. }
  849. });
  850. that.OfficialFormList = res.data.data.setData;
  851. that.dataSourceList = res.data.data.dataSource;
  852. if (that.OfficialFormList.length != 0) {
  853. if(that.id!=that.id){
  854. that.OpOfficialActivitiesDto.officialForm = that.OfficialFormList[0].id
  855. }
  856. }
  857. that.OfficialActivitiesTranslatorList();
  858. }else{
  859. that.$message.error("网络错误,请稍后重试");
  860. }
  861. }).catch(function (error) {
  862. that.$message.error("网络错误,请稍后重试");
  863. });
  864. },
  865. //翻译人员
  866. OfficialActivitiesTranslatorList() {
  867. var url = "/api/Resource/OfficialActivitiesTranslatorList"
  868. var that = this
  869. this.$axios({
  870. method: 'post',
  871. url: url,
  872. headers: {
  873. Authorization: 'Bearer ' + this.token
  874. },
  875. data: {
  876. portType: 3,
  877. pageIndex: 1,
  878. pageSize: 10000,
  879. groupName: '',
  880. }
  881. }).then(function (res) {
  882. if (res.data.code == 200) {
  883. that.restaurants= res.data.data.map((terminal) => {
  884. return {
  885. id:terminal.id,
  886. value:terminal.name,
  887. area:terminal.area,
  888. sex:terminal.sex,
  889. tel:terminal.tel,
  890. email:terminal.email,
  891. wechatNo:terminal.wechatNo,
  892. otherSocialAccounts:terminal.otherSocialAccounts,
  893. language:terminal.language,
  894. price:terminal.price,
  895. currency:terminal.currency,
  896. };
  897. });
  898. }else{
  899. that.$message.error("网络错误,请稍后重试");
  900. }
  901. }).catch(function (error) {
  902. that.$message.error("网络错误,请稍后重试");
  903. });
  904. },
  905. //团组下拉框
  906. GetGroupAllList() {
  907. var url = "/api/Resource/GetGroupAllList"
  908. var that = this
  909. this.$axios({
  910. method: 'post',
  911. url: url,
  912. headers: {
  913. Authorization: 'Bearer ' + this.token
  914. },
  915. data: {
  916. diid: that.DiId
  917. }
  918. }).then(function (res) {
  919. if (res.data.code == 200) {
  920. // let datainfo=res.data.data;
  921. // that.currencyarr=datainfo.currencyData;
  922. // that.restaurants = res.data.data.translatorData;
  923. // that.restaurants= datainfo.translatorData.map((terminal) => {
  924. // return {
  925. // id:terminal.id,
  926. // value:terminal.name,
  927. // area:terminal.area,
  928. // sex:terminal.sex,
  929. // tel:terminal.tel,
  930. // email:terminal.email,
  931. // wechatNo:terminal.wechatNo,
  932. // otherSocialAccounts:terminal.otherSocialAccounts,
  933. // language:terminal.language,
  934. // price:terminal.price,
  935. // currency:terminal.currency,
  936. // };
  937. // });
  938. // that.deleFile = res.data.data.deleFile;
  939. // that.deleFile.forEach(function (item) {
  940. // if (item.kind == 1) {
  941. // that.uploadFiles1.push({
  942. // name: item.fileName,
  943. // url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  944. // id: item.id
  945. // });
  946. // } else if (item.kind == 2) {
  947. // that.uploadFiles2.push({
  948. // name: item.fileName,
  949. // url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  950. // id: item.id
  951. // });
  952. // }
  953. // else if (item.kind == 3) {
  954. // that.uploadFiles3.push({
  955. // name: item.fileName,
  956. // url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  957. // id: item.id
  958. // });
  959. // }
  960. // });
  961. // that.delegationInfoList = res.data.data.delegation;
  962. // that.OfficialFormList = res.data.data.setData;
  963. // that.dataSourceList = res.data.data.dataSource;
  964. // if (that.OfficialFormList.length != 0) {
  965. // if(that.id!=that.id){
  966. // that.OpOfficialActivitiesDto.officialForm = that.OfficialFormList[0].id
  967. // }
  968. // }
  969. // for (let index = 0; index < that.delegationInfoList.length; index++) {
  970. // if (that.delegationInfoList[index].id == parseInt(that.DiId)) {
  971. // that.delegationInfo = that.delegationInfoList[index];
  972. // break;
  973. // }
  974. // }
  975. }
  976. }).catch(function (error) {
  977. // that.$message.error("网络错误,请稍后重试");
  978. });
  979. },
  980. //UploadEmailscreenshot
  981. UploadEmailscreenshot(){
  982. console.log(file, fileList);
  983. this.Emailscreenshotdata.diId=this.DiId;
  984. this.Emailscreenshotdata.currUserId=this.userId;
  985. this.submitUpload()
  986. },
  987. //获取邀请方
  988. QuerySetData(){
  989. var that = this;
  990. var url = "/api/System/QuerySetData"
  991. this.$axios({
  992. method: 'post',
  993. url: url,
  994. headers: {
  995. Authorization: 'Bearer ' + that.token
  996. },
  997. data: {
  998. dataType:85
  999. }
  1000. }).then(function (res) {
  1001. if (res.data.code == 200) {
  1002. that.yqfarr=res.data.data;
  1003. console.log(that.yqfarr);
  1004. } else {
  1005. that.$message.error(res.data.msg);
  1006. }
  1007. })
  1008. },
  1009. Emailscreenshotchange(file, fileList){
  1010. console.log(file, fileList);
  1011. },
  1012. //获取公务请示范例提示
  1013. PostOfficialActivitiesReqReqSampleTips(){
  1014. var that = this;
  1015. var url = "/api/Resource/PostOfficialActivitiesReqReqSampleTips"
  1016. this.$axios({
  1017. method: 'post',
  1018. url: url,
  1019. headers: {
  1020. Authorization: 'Bearer ' + that.token
  1021. },
  1022. data: {
  1023. country:that.OpOfficialActivitiesDto.country,
  1024. area: that.OpOfficialActivitiesDto.area,
  1025. client: that.OpOfficialActivitiesDto.client
  1026. }
  1027. }).then(function (res) {
  1028. if (res.data.code == 200) {
  1029. console.log(res)
  1030. that.reqSampleArrpd=true
  1031. that.reqSampleArr=res.data.data;
  1032. // that.$message({
  1033. // message: res.data.msg,
  1034. // type: 'success'
  1035. // });
  1036. } else {
  1037. that.$message.error(res.data.msg);
  1038. }
  1039. })
  1040. },
  1041. reqSampleblur(){
  1042. // setTimeout(this.reqSampleArrpd=false,2000)
  1043. setTimeout(() => {
  1044. this.reqSampleArrpd=false
  1045. }, 150);
  1046. },
  1047. DiIdChang(val) {
  1048. for (let index = 0; index < this.delegationInfoList.length; index++) {
  1049. if (this.delegationInfoList[index].id == parseInt(this.DiId)) {
  1050. this.delegationInfo = this.delegationInfoList[index];
  1051. break;
  1052. }
  1053. }
  1054. this.PostTourClientListByDiId(val);
  1055. },
  1056. reqSampleArrli(val){
  1057. console.log(val);
  1058. this.OpOfficialActivitiesDto.reqSample=val.reqSample;
  1059. this.reqSampleArrpd=false;
  1060. },
  1061. QueryOfficialActivitiesById() {
  1062. var url = "/api/Resource/QueryOfficialActivitiesById"
  1063. var that = this
  1064. this.$axios({
  1065. method: 'post',
  1066. url: url,
  1067. headers: {
  1068. Authorization: 'Bearer ' + this.token
  1069. },
  1070. data: {
  1071. Id: that.id,
  1072. DiId: that.DiId,
  1073. }
  1074. }).then(function (res) {
  1075. if (res.data.code == 200) {
  1076. var dataList = res.data.data;
  1077. that.OpOfficialActivitiesDto.id = dataList.id;
  1078. that.OpOfficialActivitiesDto.diId = dataList.diId;
  1079. that.OpOfficialActivitiesDto.type = dataList.type;
  1080. that.OpOfficialActivitiesDto.client = dataList.client;
  1081. that.OpOfficialActivitiesDto.date = dataList.date;
  1082. that.OpOfficialActivitiesDto.time = dataList.time;;
  1083. that.OpOfficialActivitiesDto.address = dataList.address;
  1084. that.OpOfficialActivitiesDto.contact = dataList.contact;
  1085. that.OpOfficialActivitiesDto.job = dataList.job;
  1086. that.OpOfficialActivitiesDto.tel = dataList.tel;
  1087. that.OpOfficialActivitiesDto.officialForm = dataList.officialForm;
  1088. that.OpOfficialActivitiesDto.setting = dataList.setting;
  1089. that.OpOfficialActivitiesDto.dresscode = dataList.dresscode;
  1090. that.OpOfficialActivitiesDto.attendees = dataList.attendees;
  1091. that.OpOfficialActivitiesDto.isNeedTrans = dataList.isNeedTrans;
  1092. that.OpOfficialActivitiesDto.translatorIdItem = dataList.translatorIdItem;
  1093. that.OpOfficialActivitiesDto.language = dataList.language;
  1094. that.OpOfficialActivitiesDto.nature = dataList.nature;
  1095. that.OpOfficialActivitiesDto.emailOrWeChat = dataList.emailOrWeChat;
  1096. that.OpOfficialActivitiesDto.website = dataList.website;
  1097. that.OpOfficialActivitiesDto.trip = dataList.trip;
  1098. that.OpOfficialActivitiesDto.createUserId = dataList.createUserId;
  1099. that.OpOfficialActivitiesDto.remark = dataList.remark;
  1100. that.OpOfficialActivitiesDto.isSubmitApproval = dataList.isSubmitApproval;
  1101. that.OpOfficialActivitiesDto.isPay = dataList.isPay;
  1102. that.OpOfficialActivitiesDto.country = dataList.country;
  1103. that.OpOfficialActivitiesDto.area = dataList.area;
  1104. that.OpOfficialActivitiesDto.field = dataList.field;
  1105. that.OpOfficialActivitiesDto.reqSample = dataList.reqSample;
  1106. that.confirmTheInvitation=dataList.confirmTheInvitation;
  1107. that.OpOfficialActivitiesDto.dataSource = dataList.dataSource;//来源
  1108. that.OpOfficialActivitiesDto.translatorInfo.id = dataList.translatorInfo.id;//翻译详细
  1109. that.OpOfficialActivitiesDto.translatorInfo.area = dataList.translatorInfo.area;
  1110. that.OpOfficialActivitiesDto.translatorInfo.name = dataList.translatorInfo.name;
  1111. that.OpOfficialActivitiesDto.translatorInfo.sex = dataList.translatorInfo.sex;
  1112. that.OpOfficialActivitiesDto.translatorInfo.tel = dataList.translatorInfo.tel;
  1113. that.OpOfficialActivitiesDto.translatorInfo.email = dataList.translatorInfo.email;
  1114. that.OpOfficialActivitiesDto.translatorInfo.wechatNo = dataList.translatorInfo.wechatNo;
  1115. that.OpOfficialActivitiesDto.translatorInfo.otherSocialAccounts = dataList.translatorInfo.otherSocialAccounts;
  1116. that.OpOfficialActivitiesDto.translatorInfo.language = dataList.translatorInfo.language;
  1117. that.OpOfficialActivitiesDto.translatorInfo.price = dataList.translatorInfo.price;
  1118. that.OpOfficialActivitiesDto.translatorInfo.currency = dataList.translatorInfo.currency;
  1119. // that.fileList
  1120. that.fileList=[]
  1121. for(let i=0;i<dataList.screenshotOfMailUrls.length;i++){
  1122. that.fileList.push({'name':dataList.screenshotOfMailUrls[i].split('/')[7],'url':dataList.screenshotOfMailUrls[i]})
  1123. }
  1124. }
  1125. })
  1126. },
  1127. addBtn() {
  1128. if (this.DiId == null && this.DiId == undefined && this.DiId == "") {
  1129. this.$message.error("请选择团组名称");
  1130. return;
  1131. }
  1132. if(this.fileList.length<=0){
  1133. this.$message.error("请先选取邮件截图");
  1134. return;
  1135. }
  1136. const that = this;
  1137. this.OpOfficialActivitiesDto.date=this.TimeProcessingri(this.OpOfficialActivitiesDto.date)
  1138. that.OpOfficialActivitiesDto.createUserId = that.userId
  1139. that.OpOfficialActivitiesDto.diId = that.DiId
  1140. if(that.OpOfficialActivitiesDto.officialForm==384||that.OpOfficialActivitiesDto.officialForm==1337){
  1141. that.OpOfficialActivitiesDto.type='';
  1142. that.OpOfficialActivitiesDto.address='';
  1143. that.OpOfficialActivitiesDto.contact='';
  1144. that.OpOfficialActivitiesDto.job='';
  1145. that.OpOfficialActivitiesDto.tel='';
  1146. that.OpOfficialActivitiesDto.setting='';
  1147. that.OpOfficialActivitiesDto.dresscode='';
  1148. that.OpOfficialActivitiesDto.attendees='';
  1149. that.OpOfficialActivitiesDto.isNeedTrans=0;
  1150. that.OpOfficialActivitiesDto.translatorIdItem=[];
  1151. that.OpOfficialActivitiesDto.language='';
  1152. that.OpOfficialActivitiesDto.nature='';
  1153. that.OpOfficialActivitiesDto.emailOrWeChat='';
  1154. that.OpOfficialActivitiesDto.website='';
  1155. that.OpOfficialActivitiesDto.trip='';
  1156. that.OpOfficialActivitiesDto.isPay='';
  1157. that.OpOfficialActivitiesDto.isSubmitApproval='';
  1158. that.OpOfficialActivitiesDto.field='';
  1159. that.OpOfficialActivitiesDto.reqSample='';
  1160. that.OpOfficialActivitiesDto.dataSource='';
  1161. that.OpOfficialActivitiesDto.translatorInfo={};
  1162. }
  1163. if (that.OpOfficialActivitiesDto.isNeedTrans==0) {
  1164. that.OpOfficialActivitiesDto.translatorInfo={};
  1165. }
  1166. let filteredObjects = that.restaurants.filter(obj =>
  1167. that.OpOfficialActivitiesDto.translatorInfo.name==obj.value
  1168. );
  1169. if (filteredObjects.length<1) {
  1170. that.OpOfficialActivitiesDto.translatorInfo.id = 0;
  1171. }
  1172. if (that.OpOfficialActivitiesDto.translatorInfo.id == '') {
  1173. that.OpOfficialActivitiesDto.translatorInfo.id = 0
  1174. }
  1175. that.$refs.OpOfficialActivitiesDto.validate((valid) => {
  1176. if (valid) {
  1177. var url = "/api/Resource/OpOfficialActivities"
  1178. that.$axios({
  1179. method: 'post',
  1180. url: url,
  1181. headers: {
  1182. Authorization: 'Bearer ' + that.token
  1183. },
  1184. data: that.OpOfficialActivitiesDto
  1185. }).then(function (res) {
  1186. if (res.data.code == 200) {
  1187. that.$message({
  1188. message: res.data.msg,
  1189. type: 'success'
  1190. });
  1191. that.submitUpload(res.data.data.id);
  1192. that.returnbtn();
  1193. } else {
  1194. that.$message.error(res.data.msg);
  1195. }
  1196. })
  1197. } else {
  1198. this.$message.error('请完善信息在保存!');
  1199. return false;
  1200. }
  1201. })
  1202. },
  1203. // 文件超出限制
  1204. exceed1(files, fileList) {
  1205. this.$message.warning(
  1206. `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  1207. } 个文件,请取消要替换的文件`
  1208. );
  1209. },
  1210. //文件上传成功时的钩子
  1211. upLoadSuccess1(response, file, fileList) {
  1212. this.$message({
  1213. message: response.msg,
  1214. type: 'success'
  1215. });
  1216. },
  1217. //文件上传失败时的钩子
  1218. upLoadError1(response, file, fileList) {
  1219. console.log("项目添加失败");
  1220. },
  1221. //取消文件时的钩子
  1222. beforeRemove1(file, fileList) {
  1223. const that = this;
  1224. var url = "/api/Resource/DelloadOfficialActivities"
  1225. this.$axios({
  1226. method: 'post',
  1227. url: url,
  1228. headers: {
  1229. Authorization: 'Bearer ' + that.token
  1230. },
  1231. data: {
  1232. Id: file.id,
  1233. DeleteUserId: that.userId
  1234. }
  1235. }).then(function (res) {
  1236. if (res.data.code == 200) {
  1237. that.$message({
  1238. message: res.data.msg,
  1239. type: 'success'
  1240. });
  1241. } else {
  1242. that.$message.error(res.data.msg);
  1243. }
  1244. })
  1245. },
  1246. //文件状态改变时的钩子
  1247. onChange1(file, fileList) {
  1248. },
  1249. //点击文件的钩子
  1250. onPreview1(file) {
  1251. window.location.href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  1252. },
  1253. // 文件超出限制
  1254. exceed2(files, fileList) {
  1255. this.$message.warning(
  1256. `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  1257. } 个文件,请取消要替换的文件`
  1258. );
  1259. },
  1260. //文件上传成功时的钩子
  1261. upLoadSuccess2(response, file, fileList) {
  1262. this.$message({
  1263. message: response.msg,
  1264. type: 'success'
  1265. });
  1266. },
  1267. //文件上传失败时的钩子
  1268. upLoadError2(response, file, fileList) {
  1269. console.log("项目添加失败");
  1270. },
  1271. //删除文件时出发的事件
  1272. beforeRemove2(file, fileList) {
  1273. const that = this;
  1274. var url = "/api/Resource/DelloadOfficialActivities"
  1275. this.$axios({
  1276. method: 'post',
  1277. url: url,
  1278. headers: {
  1279. Authorization: 'Bearer ' + that.token
  1280. },
  1281. data: {
  1282. Id: file.id,
  1283. DeleteUserId: that.userId
  1284. }
  1285. }).then(function (res) {
  1286. if (res.data.code == 200) {
  1287. that.$message({
  1288. message: res.data.msg,
  1289. type: 'success'
  1290. });
  1291. } else {
  1292. that.$message.error(res.data.msg);
  1293. }
  1294. })
  1295. },
  1296. //文件状态改变时的钩子
  1297. onChange2(file, fileList) {
  1298. },
  1299. //点击文件的钩子
  1300. onPreview2(file) {
  1301. window.location.href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  1302. },
  1303. // 文件超出限制
  1304. exceed3(files, fileList) {
  1305. this.$message.warning(
  1306. `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  1307. } 个文件,请取消要替换的文件`
  1308. );
  1309. },
  1310. //文件上传成功时的钩子
  1311. upLoadSuccess3(response, file, fileList) {
  1312. this.$message({
  1313. message: response.msg,
  1314. type: 'success'
  1315. });
  1316. },
  1317. //文件上传失败时的钩子
  1318. upLoadError3(response, file, fileList) {
  1319. console.log("项目添加失败");
  1320. },
  1321. //删除文件时出发的事件
  1322. beforeRemove3(file, fileList) {
  1323. const that = this;
  1324. var url = "/api/Resource/DelloadOfficialActivities"
  1325. this.$axios({
  1326. method: 'post',
  1327. url: url,
  1328. headers: {
  1329. Authorization: 'Bearer ' + that.token
  1330. },
  1331. data: {
  1332. Id: file.id,
  1333. DeleteUserId: that.userId
  1334. }
  1335. }).then(function (res) {
  1336. if (res.data.code == 200) {
  1337. that.$message({
  1338. message: res.data.msg,
  1339. type: 'success'
  1340. });
  1341. setTimeout(() => {
  1342. that.$router.push('/home/OfficialActivities')
  1343. }, 3000);
  1344. } else {
  1345. that.$message.error(res.data.msg);
  1346. }
  1347. })
  1348. },
  1349. //文件状态改变时的钩子
  1350. onChange3(file, fileList) {
  1351. },
  1352. //点击文件的钩子
  1353. onPreview3(file) {
  1354. let href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  1355. var a = document.createElement("a");
  1356. a.href = href;
  1357. a.download = file.name;
  1358. a.style.display = "none";
  1359. document.body.appendChild(a);
  1360. a.click();
  1361. a.remove();
  1362. //window.location.href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  1363. },
  1364. //返回
  1365. returnbtn(){
  1366. this.$router.push({
  1367. path: "/home/OfficialActivities",
  1368. query: {
  1369. DiId: this.DiId,
  1370. }
  1371. })
  1372. },
  1373. // 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用,function(file, fileList)
  1374. handleChange(file, fileList) {
  1375. console.log(file);
  1376. console.log(fileList);
  1377. this.fileList = fileList
  1378. },
  1379. //删除文件
  1380. beforeRemove(file,fileList){
  1381. if(file && file.status=="success"){
  1382. return this.$confirm('此文件已上传至服务器此操作将永久删除该文件, 是否继续?', '提示', {
  1383. confirmButtonText: '确定',
  1384. cancelButtonText: '取消',
  1385. type: 'warning'
  1386. }).then(() => {
  1387. // this.$message({
  1388. // type: 'success',
  1389. // message: '删除成功!'
  1390. // });
  1391. }).catch(() => {
  1392. this.$message({
  1393. type: 'info',
  1394. message: '已取消删除'
  1395. });
  1396. reject(false)
  1397. });
  1398. }
  1399. },
  1400. // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。function(file, fileList)
  1401. handleRemove(file, fileList) {
  1402. this.fileList = fileList
  1403. if (file && file.status=="success") {
  1404. var that = this;
  1405. var url = "/api/Resource/OfficialActivitiesDelFile"
  1406. this.$axios({
  1407. method: 'post',
  1408. url: url,
  1409. headers: {
  1410. Authorization: 'Bearer ' + that.token
  1411. },
  1412. data:{
  1413. id:that.id,
  1414. fileName:file.name
  1415. }
  1416. }).then(function (res) {
  1417. if (res.data.code == 200) {
  1418. that.$message.success(res.data.msg);
  1419. } else {
  1420. that.$message.error(res.data.msg);
  1421. }
  1422. })
  1423. }
  1424. },
  1425. //点击文件列表中已上传的文件
  1426. handlePreview(file){
  1427. console.log(file);
  1428. window.open(file.url);
  1429. },
  1430. //上传服务器
  1431. submitUpload(val) {
  1432. // console.log(this.id);
  1433. var verdict=false
  1434. if(this.id==undefined){
  1435. this.id==val
  1436. }
  1437. this.Emailscreenshotdata.id=val;
  1438. this.Emailscreenshotdata.diId=this.DiId;
  1439. this.Emailscreenshotdata.currUserId=this.userId;
  1440. //判断是否有文件再上传
  1441. if (this.fileList.length === 0) {
  1442. return this.$message.warning('请选取文件后再上传');
  1443. }
  1444. // 下面的代码将创建一个空的FormData对象:
  1445. const formData = new FormData()
  1446. // 你可以使用FormData.append来添加键/值对到表单里面;
  1447. this.fileList.forEach((file) => {
  1448. if(file.raw!=undefined){
  1449. verdict=true;
  1450. formData.append('files', file.raw);
  1451. }
  1452. })
  1453. formData.append('id', this.Emailscreenshotdata.id);
  1454. formData.append('diId', this.Emailscreenshotdata.diId);
  1455. formData.append('currUserId', this.Emailscreenshotdata.currUserId);
  1456. if(!verdict){
  1457. return
  1458. }
  1459. var that = this;
  1460. var url = "/api/Resource/OfficialActivitiesUploadFiles"
  1461. this.$axios({
  1462. method: 'post',
  1463. url: url,
  1464. headers: {
  1465. Authorization: 'Bearer ' + that.token
  1466. },
  1467. data:formData
  1468. }).then(function (res) {
  1469. if (res.data.code == 200) {
  1470. that.$message.success(res.data.msg);
  1471. that.fileList = []
  1472. for(let i=0;i<res.data.data.fileUrls.length;i++){
  1473. that.fileList.push({'name':res.data.data.fileUrls[i].split('/')[7],'url':res.data.data.fileUrls[i]})
  1474. }
  1475. } else {
  1476. that.$message.error(res.data.msg);
  1477. }
  1478. })
  1479. },
  1480. //确认邀请
  1481. OfficialActivitiesInviteOperation(val){
  1482. var that = this;
  1483. var url = "/api/Resource/OfficialActivitiesInviteOperation"
  1484. this.$axios({
  1485. method: 'post',
  1486. url: url,
  1487. headers: {
  1488. Authorization: 'Bearer ' + that.token
  1489. },
  1490. data:{
  1491. id:that.id,
  1492. type:val
  1493. }
  1494. }).then(function (res) {
  1495. if (res.data.code == 200) {
  1496. that.QueryOfficialActivitiesById()
  1497. that.$message.success(res.data.msg);
  1498. } else {
  1499. that.$message.error(res.data.msg);
  1500. }
  1501. })
  1502. },
  1503. //控制表单
  1504. Officchange(val){
  1505. console.log(this.OpOfficialActivitiesDto.officialForm!=384,this.OpOfficialActivitiesDto.officialForm!=1337);
  1506. }
  1507. },
  1508. mounted() {
  1509. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  1510. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  1511. this.gwcfPermissions=JSON.parse(localStorage.getItem('Permissions'));
  1512. this.DiId = parseInt(this.$route.query.DiId)
  1513. this.PostTourClientListByDiId();
  1514. console.log(this.gwcfPermissions);
  1515. for(let k=0;k<this.gwcfPermissions.length;k++){
  1516. if(this.gwcfPermissions[k].funid==12){
  1517. this.btnPermissions=true;
  1518. }
  1519. }
  1520. this.QuerySetData();
  1521. this.id = this.$route.query.id
  1522. this.headers1.DiId = this.DiId
  1523. this.headers1.CreateUserId = this.userId
  1524. this.headers2.DiId = this.DiId
  1525. this.headers2.CreateUserId = this.userId
  1526. this.headers3.DiId = this.DiId
  1527. this.headers3.CreateUserId = this.userId
  1528. // this.GetGroupAllList();
  1529. this.OfficialActivitiesGroupNameList();
  1530. if (this.DiId == null && this.DiId == undefined && this.DiId == 0) {
  1531. this.DiId = '';
  1532. }
  1533. if (this.id != null && this.id != undefined && this.id != 0) {
  1534. this.QueryOfficialActivitiesById();
  1535. this.title = "修改公务出访客户资料";
  1536. this.OpOfficialActivitiesDto.status = 2
  1537. this.isShow = true
  1538. } else {
  1539. this.OpOfficialActivitiesDto.status = 1
  1540. this.title = "新增公务出访客户资料"
  1541. this.isShow = false
  1542. }
  1543. }
  1544. }
  1545. </script>
  1546. <style>
  1547. .car_add .communal-title {
  1548. display: flex;
  1549. font-size: 17px;
  1550. font-weight: 600;
  1551. color: #555;
  1552. margin-bottom: 20px;
  1553. justify-content: space-between;
  1554. align-items: center;
  1555. }
  1556. .appraise-box {
  1557. display: flex;
  1558. flex-wrap: wrap;
  1559. justify-content: space-between;
  1560. margin: 50px 0;
  1561. }
  1562. .appraise-box>div {
  1563. width: 30%;
  1564. }
  1565. .communal-box {
  1566. display: flex;
  1567. }
  1568. .communal-box>button {
  1569. margin-left: 10px;
  1570. padding: 8px 20px;
  1571. }
  1572. .car_add {
  1573. background-color: #fff;
  1574. padding: 20px;
  1575. box-shadow: 0 0 5px #0005;
  1576. border-radius: 10px;
  1577. min-height: 810px;
  1578. }
  1579. .visit-box .el-date-editor.el-input, .el-date-editor.el-input__inner{
  1580. width: 100%;
  1581. }
  1582. .visit-box .el-select{
  1583. width: 100%;
  1584. }
  1585. .reqSampleArr-ul{
  1586. position:absolute;
  1587. z-index:1;
  1588. background-color: #FFFFFF;
  1589. box-shadow: #5555 0 0 10px;
  1590. border-radius:5px ;
  1591. max-height: 400px;
  1592. overflow: auto;
  1593. }
  1594. .reqSampleArr-li:hover{
  1595. background-color: #5551;
  1596. }
  1597. .reqSampleArr-li{
  1598. line-height: 20px;
  1599. padding: 10px;
  1600. cursor: pointer;
  1601. }
  1602. .ps-title{
  1603. color: red;
  1604. font-size: 12px;
  1605. }
  1606. ::v-deep input[aria-hidden="true"] {
  1607. display: none !important;
  1608. }
  1609. ::v-deep .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
  1610. box-shadow: none !important;
  1611. }
  1612. @media screen and (max-width: 1700px) {
  1613. .appraise-box>div {
  1614. width: 48%;
  1615. }
  1616. .appraise-box>div el-form-item__content {
  1617. width: 260px !important;
  1618. }
  1619. }
  1620. </style>