OpOfficialActivities.vue 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300
  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="country" label-width="160px">
  84. <el-input clearable placeholder="国家" v-model="OpOfficialActivitiesDto.country">
  85. </el-input>
  86. </el-form-item>
  87. </div>
  88. <div style="width: 385px;">
  89. <el-form-item label="地区:" prop="area" label-width="160px">
  90. <el-input clearable placeholder="地区" v-model="OpOfficialActivitiesDto.area">
  91. </el-input>
  92. </el-form-item>
  93. </div>
  94. <div style="width: 385px;">
  95. <el-form-item label="公务单位:" prop="client" label-width="160px">
  96. <el-input clearable placeholder="公务单位" v-model="OpOfficialActivitiesDto.client">
  97. </el-input>
  98. </el-form-item>
  99. </div>
  100. <div style="width: 385px;">
  101. <el-form-item label="公务日期:" prop="date" label-width="160px">
  102. <el-date-picker
  103. value-format="yyyy-MM-dd"
  104. type="date"
  105. v-model="OpOfficialActivitiesDto.date"
  106. placeholder="选择日期">
  107. </el-date-picker>
  108. </el-form-item>
  109. </div>
  110. <div style="width: 385px;">
  111. <el-form-item label="公务时刻:" prop="time" label-width="160px">
  112. <el-time-picker v-model="OpOfficialActivitiesDto.time" format='HH:mm' value-format="HH:mm"
  113. placeholder="公务时刻">
  114. </el-time-picker>
  115. </el-form-item>
  116. </div>
  117. <div style="width: 385px;">
  118. <el-form-item label="邀请方:" prop="type" label-width="160px">
  119. <el-select v-model="OpOfficialActivitiesDto.type" clearable filterable placeholder="邀请方选择">
  120. <el-option v-for="item in yqfarr" :key="item.id" :label="item.name"
  121. :value="item.id">
  122. </el-option>
  123. </el-select>
  124. <!-- <el-radio-group v-model="OpOfficialActivitiesDto.type">
  125. <el-radio :label=1>是</el-radio>
  126. <el-radio :label=0>否</el-radio>
  127. </el-radio-group> -->
  128. </el-form-item>
  129. </div>
  130. <!-- </div>
  131. <div style="display: flex;flex-wrap: wrap;"> -->
  132. <div style="width: 385px;">
  133. <el-form-item label="公务方联系人职务:" prop="job" label-width="160px">
  134. <el-input clearable placeholder="公务方联系人职务" v-model="OpOfficialActivitiesDto.job">
  135. </el-input>
  136. </el-form-item>
  137. </div>
  138. <div style="width: 385px;">
  139. <el-form-item label="公务方联系人:" prop="contact" label-width="160px">
  140. <el-input clearable placeholder="公务方联系人" v-model="OpOfficialActivitiesDto.contact">
  141. </el-input>
  142. </el-form-item>
  143. </div>
  144. <div style="width: 385px;">
  145. <el-form-item label="电话:" prop="tel" label-width="160px">
  146. <el-input clearable placeholder="电话" v-model="OpOfficialActivitiesDto.tel">
  147. </el-input>
  148. </el-form-item>
  149. </div>
  150. <div style="width: 385px;">
  151. <el-form-item label="公务形式:" prop="officialForm" label-width="160px">
  152. <el-select v-model="OpOfficialActivitiesDto.officialForm" clearable filterable placeholder="公务形式">
  153. <el-option v-for="item in OfficialFormList" :key="item.id" :label="item.name" :value="item.id">
  154. </el-option>
  155. </el-select>
  156. </el-form-item>
  157. </div>
  158. <!-- </div>
  159. <div style="display: flex;flex-wrap: wrap;"> -->
  160. <div style="width: 385px;">
  161. <el-form-item label="着装要求:" prop="dresscode" label-width="160px">
  162. <el-input clearable placeholder="着装要求" v-model="OpOfficialActivitiesDto.dresscode">
  163. </el-input>
  164. </el-form-item>
  165. </div>
  166. <div style="width: 385px;">
  167. <el-form-item label="涉及领域:" prop="field" label-width="160px">
  168. <el-input clearable placeholder="涉及领域" v-model="OpOfficialActivitiesDto.field">
  169. </el-input>
  170. </el-form-item>
  171. </div>
  172. <div style="width: 385px;">
  173. <el-form-item label="需要翻译:" prop="isNeedTrans" label-width="160px">
  174. <el-radio-group v-model="OpOfficialActivitiesDto.isNeedTrans">
  175. <el-radio :label=1>是</el-radio>
  176. <el-radio :label=0>否</el-radio>
  177. </el-radio-group>
  178. </el-form-item>
  179. </div>
  180. <div style="width: 385px;">
  181. <el-form-item label="翻译人员:" prop="translatorIdItem" label-width="160px">
  182. <el-select
  183. v-model="OpOfficialActivitiesDto.translatorIdItem"
  184. multiple
  185. collapse-tags
  186. placeholder="请选择">
  187. <el-option
  188. v-for="item in restaurants"
  189. :key="item.id"
  190. :label="item.name"
  191. :value="item.id">
  192. </el-option>
  193. </el-select>
  194. <!-- <el-autocomplete
  195. style="width: 100%;"
  196. class="inline-input"
  197. v-model="OpOfficialActivitiesDto.translators"
  198. :fetch-suggestions="querySearch"
  199. placeholder="请输入内容"
  200. @select="handleSelect"
  201. ></el-autocomplete> -->
  202. <!-- <el-input clearable placeholder="翻译人员" v-model="OpOfficialActivitiesDto.translators">
  203. </el-input> -->
  204. </el-form-item>
  205. </div>
  206. <div style="width: 385px;">
  207. <el-form-item label="翻译语种:" :prop="OpOfficialActivitiesDto.isNeedTrans==0?'':'language'" label-width="160px">
  208. <el-input clearable placeholder="翻译语种" v-model="OpOfficialActivitiesDto.language">
  209. </el-input>
  210. </el-form-item>
  211. </div>
  212. <div style="width: 385px;">
  213. <el-form-item label="是否付费:" prop="isPay" label-width="160px">
  214. <el-radio-group v-model="OpOfficialActivitiesDto.isPay">
  215. <el-radio :label=1>是</el-radio>
  216. <el-radio :label=0>否</el-radio>
  217. </el-radio-group>
  218. </el-form-item>
  219. </div>
  220. <div style="width: 385px;">
  221. <el-form-item label="是否报批:" prop="type" label-width="160px">
  222. <el-radio-group v-model="OpOfficialActivitiesDto.isSubmitApproval">
  223. <el-radio :label=1>是</el-radio>
  224. <el-radio :label=0>否</el-radio>
  225. </el-radio-group>
  226. </el-form-item>
  227. </div>
  228. <div style="width: 385px;">
  229. <el-form-item label="性质:" prop="nature" label-width="160px">
  230. <el-input clearable placeholder="性质" v-model="OpOfficialActivitiesDto.nature">
  231. </el-input>
  232. </el-form-item>
  233. </div>
  234. <div style="width: 385px;">
  235. <el-form-item label="邮箱号/微信号:" prop="emailOrWeChat" label-width="160px">
  236. <el-input clearable placeholder="邮箱号/微信号" v-model="OpOfficialActivitiesDto.emailOrWeChat">
  237. </el-input>
  238. </el-form-item>
  239. </div>
  240. <div style="width: 385px;">
  241. <el-form-item label="网址:" prop="website" label-width="160px">
  242. <el-input clearable placeholder="网址" v-model="OpOfficialActivitiesDto.website">
  243. </el-input>
  244. </el-form-item>
  245. </div>
  246. </div>
  247. <div style="display: flex; flex-wrap: wrap;">
  248. <div style="width: 770px;">
  249. <el-form-item label="公务地址:" prop="address" label-width="160px">
  250. <el-input type="textarea" :rows="3" placeholder="公务地址"
  251. v-model="OpOfficialActivitiesDto.address"></el-input>
  252. </el-form-item>
  253. </div>
  254. <div style="width: 770px;">
  255. <el-form-item label="公务方背景:" prop="setting" label-width="160px">
  256. <el-input
  257. type="textarea"
  258. :rows="3"
  259. placeholder="公务方背景"
  260. v-model="OpOfficialActivitiesDto.setting">
  261. </el-input>
  262. </el-form-item>
  263. </div>
  264. <div style="width: 770px;">
  265. <el-form-item style="position: relative;" label="公务请示范例:" label-width="160px">
  266. <el-input @blur="reqSampleblur" @focus="PostOfficialActivitiesReqReqSampleTips" type="textarea" :rows="3" placeholder="公务请示范例" v-model="OpOfficialActivitiesDto.reqSample">
  267. </el-input>
  268. <div v-show="reqSampleArrpd" class="reqSampleArr-ul">
  269. <div @click="reqSampleArrli(item)" class="reqSampleArr-li" v-for="(item,index) in reqSampleArr" :key="index">
  270. {{'['+item.teamName+']('+item.client+') '+item.reqSample}}
  271. </div>
  272. </div>
  273. </el-form-item>
  274. </div>
  275. <!-- </div>
  276. <div style="display: flex;"> -->
  277. <div style="width: 770px;">
  278. <el-form-item label="暂定议程:" prop="trip" label-width="160px">
  279. <el-input type="textarea" :rows="3" placeholder="暂定议程"
  280. v-model="OpOfficialActivitiesDto.trip"></el-input>
  281. </el-form-item>
  282. </div>
  283. <div style="width:770px;">
  284. <el-form-item label="参会人员:" prop="attendees" label-width="160px">
  285. <el-input type="textarea" :rows="3" placeholder="参会人员"
  286. v-model="OpOfficialActivitiesDto.attendees"></el-input>
  287. </el-form-item>
  288. </div>
  289. <div style="width:770px;">
  290. <el-form-item label="邮件截图:" label-width="160px">
  291. <span style="display: inline-block;position: absolute;left: -82px;color: red;">*</span>
  292. <!-- <el-upload
  293. ref="Emailscreenshotref"
  294. :action="Emailscreenshoturl"
  295. :data="Emailscreenshotdata"
  296. :show-file-list="true"
  297. :auto-upload="false"
  298. :file-list="Emailscreenshot"
  299. :on-change="Emailscreenshotchange"
  300. :multiple="true"
  301. name="files">
  302. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  303. <el-button style="margin-left: 10px;" size="small" type="success"
  304. @click="UploadEmailscreenshot">上传</el-button>
  305. </el-upload> -->
  306. <el-upload
  307. accept="image/jpeg,image/png"
  308. class="pop-upload"
  309. ref="upload"
  310. action=""
  311. :file-list="fileList"
  312. :auto-upload="false"
  313. :multiple="true"
  314. :on-change="handleChange"
  315. :on-remove="handleRemove"
  316. :on-preview="handlePreview"
  317. :before-remove="beforeRemove"
  318. name="files"
  319. >
  320. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  321. <span style="color: red;font-size: 11px;">* 需上传,对方初次回复的邮件/微信截图和最后确认会面的信息截图(截图显示对方有效邮箱地址)</span>
  322. <!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
  323. </el-upload>
  324. </el-form-item>
  325. </div>
  326. </div>
  327. <!-- <div>
  328. <div>
  329. <div class="communal-title">
  330. <div>公务文件</div>
  331. </div>
  332. </div>
  333. <span style="color: red;">上传、删除文件时请谨慎!!!</span>
  334. <hr style='background-color:#5555; height:1px; border:none;' />
  335. <div style="display: flex;">
  336. <div style="width: 33%;">
  337. 公务方简介:
  338. <el-upload :file-list="uploadFiles1" ref="upload1" :on-success="upLoadSuccess1" :on-error="upLoadError1"
  339. :before-remove="beforeRemove1" :on-change="onChange1" :limit="1" :on-exceed="exceed1"
  340. :action="uploadURL" :headers="headers1" :auto-upload="false" :on-preview="onPreview1">
  341. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  342. <el-button style="margin-left: 10px;" size="small" type="success"
  343. @click="submitUpload1">上传</el-button>
  344. </el-upload>
  345. </div>
  346. <div style="width: 33%;">
  347. 公务活动图片:
  348. <el-upload :file-list="uploadFiles2" ref="upload2" :on-success="upLoadSuccess2" :on-error="upLoadError2"
  349. :before-remove="beforeRemove2" :on-change="onChange2" :limit="1" :on-exceed="exceed2"
  350. :action="uploadURL" :headers="headers2" :auto-upload="false" :on-preview="onPreview2">
  351. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  352. <el-button style="margin-left: 10px;" size="small" type="success"
  353. @click="submitUpload2">上传</el-button>
  354. </el-upload>
  355. </div>
  356. <div style="width: 33%;">
  357. 发票:
  358. <el-upload :file-list="uploadFiles3" ref="upload3" :on-success="upLoadSuccess3" :on-error="upLoadError3"
  359. :before-remove="beforeRemove3" :on-change="onChange3" :limit="1" :on-exceed="exceed3"
  360. :action="uploadURL" :headers="headers3" :auto-upload="false" :on-preview="onPreview3">
  361. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  362. <el-button style="margin-left: 10px;" size="small" type="success"
  363. @click="submitUpload3">上传</el-button>
  364. </el-upload>
  365. </div>
  366. </div>
  367. </div> -->
  368. <el-form-item>
  369. <div style="text-align: right;">
  370. <el-button type="primary" @click="addBtn">保存</el-button>
  371. <el-button v-if="btnPermissions&&confirmTheInvitation==0" @click="OfficialActivitiesInviteOperation(1)" type="primary">复核确认</el-button>
  372. <el-button v-if="btnPermissions&&confirmTheInvitation==1" @click="OfficialActivitiesInviteOperation(0)" type="primary">取消确认</el-button>
  373. <el-button @click="returnbtn">取消</el-button>
  374. </div>
  375. </el-form-item>
  376. </el-form>
  377. </div>
  378. </div>
  379. </template>
  380. <script>
  381. import { pinyin } from 'pinyin-pro';
  382. export default {
  383. data() {
  384. return {
  385. confirmTheInvitation:0,
  386. title: "新增公务出访客户资料",
  387. token: '',
  388. userId: 0,
  389. id: '',
  390. DiId: '',
  391. isShow: false,
  392. delegationInfo: {},
  393. delegationInfoList: [],//团组下拉框
  394. OfficialFormList: [],//公务形式下拉框
  395. deleFile: [],//文件数据
  396. headers: {
  397. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  398. TypeName: "A"
  399. },
  400. OpOfficialActivitiesDto: {
  401. status: 0,
  402. id: 0,
  403. diId: "",
  404. type: "",
  405. client: "",
  406. date: "",
  407. time: "",
  408. address: "",
  409. contact: "",
  410. job: "",
  411. tel: "",
  412. officialForm: "",
  413. setting: "",
  414. dresscode: "",
  415. attendees: "",
  416. isNeedTrans: 0,
  417. translatorIdItem: [],
  418. language: "",
  419. nature: "",
  420. emailOrWeChat: "",
  421. website: "",
  422. trip: "",
  423. createUserId: 0,
  424. isPay:0,
  425. isSubmitApproval:0,
  426. remark: "",
  427. country: "",
  428. area: "",
  429. field: "",
  430. reqSample: "",
  431. },
  432. reqSampleArr:[],
  433. reqSampleArrpd:false,
  434. rollcallarr:[],
  435. OpOfficialActivitiesRules: {
  436. officialForm: [
  437. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  438. { required: true, message: '该信息为必填信息', trigger: 'change' }
  439. ],
  440. country: [
  441. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  442. ],
  443. area: [
  444. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  445. ],
  446. inviteCosts: [
  447. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  448. { required: true, message: '该信息为必填信息', trigger: 'change' },
  449. ],
  450. client: [
  451. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  452. { required: true, message: '该信息为必填信息', trigger: 'change' },
  453. ],
  454. date: [
  455. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  456. { required: true, message: '该信息为必填信息', trigger: 'change' },
  457. ],
  458. time: [
  459. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  460. { required: true, message: '该信息为必填信息', trigger: 'change' },
  461. ],
  462. address: [
  463. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  464. { required: true, message: '该信息为必填信息', trigger: 'change' },
  465. ],
  466. contact: [
  467. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  468. { required: true, message: '该信息为必填信息', trigger: 'change' },
  469. ],
  470. job: [
  471. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  472. { required: true, message: '该信息为必填信息', trigger: 'change' },
  473. ],
  474. tel: [
  475. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  476. { required: true, message: '该信息为必填信息', trigger: 'change' },
  477. ],
  478. dresscode: [
  479. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  480. { required: true, message: '该信息为必填信息', trigger: 'change' },
  481. ],
  482. field: [
  483. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  484. { required: true, message: '该信息为必填信息', trigger: 'change' },
  485. ],
  486. language: [
  487. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  488. { required: true, message: '该信息为必填信息', trigger: 'change' },
  489. ],
  490. setting: [
  491. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  492. { required: true, message: '该信息为必填信息', trigger: 'change' },
  493. ],
  494. nature: [
  495. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  496. { required: true, message: '该信息为必填信息', trigger: 'change' },
  497. ],
  498. emailOrWeChat: [
  499. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  500. { required: true, message: '该信息为必填信息', trigger: 'change' },
  501. ],
  502. website: [
  503. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  504. { required: true, message: '该信息为必填信息', trigger: 'change' },
  505. ],
  506. type: [
  507. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  508. { required: true, message: '该信息为必填信息', trigger: 'change' },
  509. ],
  510. fileList: [
  511. { required: true, message: '该信息为必填信息', trigger: 'change' },
  512. ],
  513. isPay:[
  514. { required: true, message: '该信息为必填信息', trigger: 'blur' },
  515. { required: true, message: '该信息为必填信息', trigger: 'change' },
  516. ],
  517. },
  518. uploadURL: "http://localhost:5256/api/Resource/UploadOfficialActivities",
  519. uploadFiles1: [],
  520. uploadFiles2: [],
  521. uploadFiles3: [],
  522. Emailscreenshot:[],
  523. Emailscreenshoturl:'http://132.232.92.186:8888/api/Resource/OfficialActivitiesUploadFiles',
  524. Emailscreenshotdata:{
  525. id:0,
  526. diId:0,
  527. currUserId:0,
  528. },
  529. Emailscreenshotheaders:{
  530. Authorization:"Content-Type:multipart/form-data"
  531. },
  532. headers1: {
  533. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  534. Type: "1",
  535. DiId: 0,
  536. CreateUserId: 0,
  537. },
  538. headers2: {
  539. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  540. Type: "2",
  541. DiId: 0,
  542. CreateUserId: 0,
  543. },
  544. headers3: {
  545. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  546. Type: "3",
  547. DiId: 0,
  548. CreateUserId: 0,
  549. },
  550. yqfarr:[],
  551. gwcfPermissions:[],
  552. btnPermissions:false,
  553. fileList:[],
  554. restaurants: [],
  555. }
  556. },
  557. methods: {
  558. //拼音
  559. pinyingxing(val){
  560. return pinyin(val, { toneType: 'none' }).toUpperCase();
  561. },
  562. //fenge
  563. fgarr(val){
  564. val=val+""
  565. return val.split(' ')[0]
  566. },
  567. querySearch(queryString, cb) {
  568. var restaurants = this.restaurants;
  569. var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
  570. // 调用 callback 返回建议列表的数据
  571. cb(results);
  572. },
  573. createFilter(queryString) {
  574. return (restaurant) => {
  575. return restaurant.value.replace(" ", "").toLowerCase().match(queryString.toLowerCase());
  576. };
  577. },
  578. handleSelect(item) {
  579. console.log(item);
  580. },
  581. //日期处理(日)
  582. TimeProcessingri(val){
  583. let datetime=new Date(val)
  584. let newsyear=datetime.getFullYear();
  585. let newsMonth=datetime.getMonth() + 1<10?'0'+(datetime.getMonth() + 1):datetime.getMonth() + 1;
  586. let newsday=datetime.getDate()<10?'0'+datetime.getDate():datetime.getDate();
  587. return newsyear+ '-' +newsMonth+ '-' + newsday;
  588. },
  589. //获取客户名单info
  590. PostTourClientListByDiId(val) {
  591. this.rollcallarr=[];
  592. var that = this
  593. var url = "/api/Groups/PostTourClientListByDiId"
  594. this.$axios({
  595. method: 'post',
  596. url: url,
  597. headers: {
  598. Authorization: 'Bearer ' + that.token
  599. },
  600. data: {
  601. portType:1,
  602. diid: val?val:that.DiId,
  603. pageId:104,
  604. userId:233
  605. }
  606. }).then(function (res) {
  607. if (res.data.code == 200) {
  608. that.rollcallarr=res.data.data;
  609. } else {
  610. that.$message.error(res.data.msg);
  611. }
  612. })
  613. },
  614. //团组下拉框
  615. GetGroupAllList() {
  616. var url = "/api/Resource/GetGroupAllList"
  617. var that = this
  618. this.$axios({
  619. method: 'post',
  620. url: url,
  621. headers: {
  622. Authorization: 'Bearer ' + this.token
  623. },
  624. data: {
  625. diid: that.DiId
  626. }
  627. }).then(function (res) {
  628. if (res.data.code == 200) {
  629. that.restaurants = res.data.data.translatorData;
  630. // that.restaurants= res.data.data.translatorData.map((terminal) => {
  631. // return {
  632. // id:terminal.id,
  633. // value:terminal.name,
  634. // };
  635. // });
  636. that.deleFile = res.data.data.deleFile;
  637. that.deleFile.forEach(function (item) {
  638. if (item.kind == 1) {
  639. that.uploadFiles1.push({
  640. name: item.fileName,
  641. url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  642. id: item.id
  643. });
  644. } else if (item.kind == 2) {
  645. that.uploadFiles2.push({
  646. name: item.fileName,
  647. url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  648. id: item.id
  649. });
  650. }
  651. else if (item.kind == 3) {
  652. that.uploadFiles3.push({
  653. name: item.fileName,
  654. url: 'http://localhost:5256/Office/GrpFile/商邀相关文件/',
  655. id: item.id
  656. });
  657. }
  658. });
  659. that.delegationInfoList = res.data.data.delegation;
  660. that.OfficialFormList = res.data.data.setData;
  661. if (that.OfficialFormList.length != 0) {
  662. if(that.id!=that.id){
  663. that.OpOfficialActivitiesDto.officialForm = that.OfficialFormList[0].id
  664. }
  665. }
  666. for (let index = 0; index < that.delegationInfoList.length; index++) {
  667. if (that.delegationInfoList[index].id == parseInt(that.DiId)) {
  668. that.delegationInfo = that.delegationInfoList[index];
  669. break;
  670. }
  671. }
  672. }
  673. }).catch(function (error) {
  674. // that.$message.error("网络错误,请稍后重试");
  675. });
  676. },
  677. //UploadEmailscreenshot
  678. UploadEmailscreenshot(){
  679. console.log(file, fileList);
  680. this.Emailscreenshotdata.diId=this.DiId;
  681. this.Emailscreenshotdata.currUserId=this.userId;
  682. this.submitUpload()
  683. },
  684. //获取邀请方
  685. QuerySetData(){
  686. var that = this;
  687. var url = "/api/System/QuerySetData"
  688. this.$axios({
  689. method: 'post',
  690. url: url,
  691. headers: {
  692. Authorization: 'Bearer ' + that.token
  693. },
  694. data: {
  695. dataType:85
  696. }
  697. }).then(function (res) {
  698. if (res.data.code == 200) {
  699. that.yqfarr=res.data.data;
  700. console.log(that.yqfarr);
  701. } else {
  702. that.$message.error(res.data.msg);
  703. }
  704. })
  705. },
  706. Emailscreenshotchange(file, fileList){
  707. console.log(file, fileList);
  708. },
  709. //获取公务请示范例提示
  710. PostOfficialActivitiesReqReqSampleTips(){
  711. var that = this;
  712. var url = "/api/Resource/PostOfficialActivitiesReqReqSampleTips"
  713. this.$axios({
  714. method: 'post',
  715. url: url,
  716. headers: {
  717. Authorization: 'Bearer ' + that.token
  718. },
  719. data: {
  720. country:that.OpOfficialActivitiesDto.country,
  721. area: that.OpOfficialActivitiesDto.area,
  722. client: that.OpOfficialActivitiesDto.client
  723. }
  724. }).then(function (res) {
  725. if (res.data.code == 200) {
  726. console.log(res)
  727. that.reqSampleArrpd=true
  728. that.reqSampleArr=res.data.data;
  729. // that.$message({
  730. // message: res.data.msg,
  731. // type: 'success'
  732. // });
  733. } else {
  734. that.$message.error(res.data.msg);
  735. }
  736. })
  737. },
  738. reqSampleblur(){
  739. // setTimeout(this.reqSampleArrpd=false,2000)
  740. setTimeout(() => {
  741. this.reqSampleArrpd=false
  742. }, 150);
  743. },
  744. DiIdChang(val) {
  745. for (let index = 0; index < this.delegationInfoList.length; index++) {
  746. if (this.delegationInfoList[index].id == parseInt(this.DiId)) {
  747. this.delegationInfo = this.delegationInfoList[index];
  748. break;
  749. }
  750. }
  751. this.PostTourClientListByDiId(val);
  752. },
  753. reqSampleArrli(val){
  754. console.log(val);
  755. this.OpOfficialActivitiesDto.reqSample=val.reqSample;
  756. this.reqSampleArrpd=false;
  757. },
  758. QueryOfficialActivitiesById() {
  759. var url = "/api/Resource/QueryOfficialActivitiesById"
  760. var that = this
  761. this.$axios({
  762. method: 'post',
  763. url: url,
  764. headers: {
  765. Authorization: 'Bearer ' + this.token
  766. },
  767. data: {
  768. Id: that.id,
  769. DiId: that.DiId,
  770. }
  771. }).then(function (res) {
  772. if (res.data.code == 200) {
  773. var dataList = res.data.data;
  774. that.OpOfficialActivitiesDto.id = dataList.id;
  775. that.OpOfficialActivitiesDto.diId = dataList.diId;
  776. that.OpOfficialActivitiesDto.type = dataList.type;
  777. that.OpOfficialActivitiesDto.client = dataList.client;
  778. that.OpOfficialActivitiesDto.date = dataList.date;
  779. that.OpOfficialActivitiesDto.time = dataList.time;;
  780. that.OpOfficialActivitiesDto.address = dataList.address;
  781. that.OpOfficialActivitiesDto.contact = dataList.contact;
  782. that.OpOfficialActivitiesDto.job = dataList.job;
  783. that.OpOfficialActivitiesDto.tel = dataList.tel;
  784. that.OpOfficialActivitiesDto.officialForm = dataList.officialForm;
  785. that.OpOfficialActivitiesDto.setting = dataList.setting;
  786. that.OpOfficialActivitiesDto.dresscode = dataList.dresscode;
  787. that.OpOfficialActivitiesDto.attendees = dataList.attendees;
  788. that.OpOfficialActivitiesDto.isNeedTrans = dataList.isNeedTrans;
  789. that.OpOfficialActivitiesDto.translatorIdItem = dataList.translatorIdItem;
  790. that.OpOfficialActivitiesDto.language = dataList.language;
  791. that.OpOfficialActivitiesDto.nature = dataList.nature;
  792. that.OpOfficialActivitiesDto.emailOrWeChat = dataList.emailOrWeChat;
  793. that.OpOfficialActivitiesDto.website = dataList.website;
  794. that.OpOfficialActivitiesDto.trip = dataList.trip;
  795. that.OpOfficialActivitiesDto.createUserId = dataList.createUserId;
  796. that.OpOfficialActivitiesDto.remark = dataList.remark;
  797. that.OpOfficialActivitiesDto.isSubmitApproval = dataList.isSubmitApproval;
  798. that.OpOfficialActivitiesDto.isPay = dataList.isPay;
  799. that.OpOfficialActivitiesDto.country = dataList.country;
  800. that.OpOfficialActivitiesDto.area = dataList.area;
  801. that.OpOfficialActivitiesDto.field = dataList.field;
  802. that.OpOfficialActivitiesDto.reqSample = dataList.reqSample;
  803. that.confirmTheInvitation=dataList.confirmTheInvitation
  804. // that.fileList
  805. that.fileList=[]
  806. for(let i=0;i<dataList.screenshotOfMailUrls.length;i++){
  807. that.fileList.push({'name':dataList.screenshotOfMailUrls[i].split('/')[7],'url':dataList.screenshotOfMailUrls[i]})
  808. }
  809. }
  810. })
  811. },
  812. addBtn() {
  813. if (this.DiId == null && this.DiId == undefined && this.DiId == "") {
  814. this.$message.error("请选择团组名称");
  815. return;
  816. }
  817. if(this.fileList.length<=0){
  818. this.$message.error("请先选取邮件截图");
  819. return;
  820. }
  821. const that = this;
  822. this.OpOfficialActivitiesDto.date=this.TimeProcessingri(this.OpOfficialActivitiesDto.date)
  823. that.OpOfficialActivitiesDto.createUserId = that.userId
  824. that.OpOfficialActivitiesDto.diId = that.DiId
  825. that.$refs.OpOfficialActivitiesDto.validate((valid) => {
  826. if (valid) {
  827. var url = "/api/Resource/OpOfficialActivities"
  828. that.$axios({
  829. method: 'post',
  830. url: url,
  831. headers: {
  832. Authorization: 'Bearer ' + that.token
  833. },
  834. data: that.OpOfficialActivitiesDto
  835. }).then(function (res) {
  836. if (res.data.code == 200) {
  837. that.$message({
  838. message: res.data.msg,
  839. type: 'success'
  840. });
  841. that.submitUpload(res.data.data.id);
  842. that.returnbtn();
  843. } else {
  844. that.$message.error(res.data.msg);
  845. }
  846. })
  847. } else {
  848. this.$message.error('请完善信息在保存!');
  849. return false;
  850. }
  851. })
  852. },
  853. // 文件超出限制
  854. exceed1(files, fileList) {
  855. this.$message.warning(
  856. `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  857. } 个文件,请取消要替换的文件`
  858. );
  859. },
  860. //文件上传成功时的钩子
  861. upLoadSuccess1(response, file, fileList) {
  862. this.$message({
  863. message: response.msg,
  864. type: 'success'
  865. });
  866. },
  867. //文件上传失败时的钩子
  868. upLoadError1(response, file, fileList) {
  869. console.log("项目添加失败");
  870. },
  871. //取消文件时的钩子
  872. beforeRemove1(file, fileList) {
  873. const that = this;
  874. var url = "/api/Resource/DelloadOfficialActivities"
  875. this.$axios({
  876. method: 'post',
  877. url: url,
  878. headers: {
  879. Authorization: 'Bearer ' + that.token
  880. },
  881. data: {
  882. Id: file.id,
  883. DeleteUserId: that.userId
  884. }
  885. }).then(function (res) {
  886. if (res.data.code == 200) {
  887. that.$message({
  888. message: res.data.msg,
  889. type: 'success'
  890. });
  891. } else {
  892. that.$message.error(res.data.msg);
  893. }
  894. })
  895. },
  896. //文件状态改变时的钩子
  897. onChange1(file, fileList) {
  898. },
  899. //点击文件的钩子
  900. onPreview1(file) {
  901. window.location.href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  902. },
  903. // 文件超出限制
  904. exceed2(files, fileList) {
  905. this.$message.warning(
  906. `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  907. } 个文件,请取消要替换的文件`
  908. );
  909. },
  910. //文件上传成功时的钩子
  911. upLoadSuccess2(response, file, fileList) {
  912. this.$message({
  913. message: response.msg,
  914. type: 'success'
  915. });
  916. },
  917. //文件上传失败时的钩子
  918. upLoadError2(response, file, fileList) {
  919. console.log("项目添加失败");
  920. },
  921. //删除文件时出发的事件
  922. beforeRemove2(file, fileList) {
  923. const that = this;
  924. var url = "/api/Resource/DelloadOfficialActivities"
  925. this.$axios({
  926. method: 'post',
  927. url: url,
  928. headers: {
  929. Authorization: 'Bearer ' + that.token
  930. },
  931. data: {
  932. Id: file.id,
  933. DeleteUserId: that.userId
  934. }
  935. }).then(function (res) {
  936. if (res.data.code == 200) {
  937. that.$message({
  938. message: res.data.msg,
  939. type: 'success'
  940. });
  941. } else {
  942. that.$message.error(res.data.msg);
  943. }
  944. })
  945. },
  946. //文件状态改变时的钩子
  947. onChange2(file, fileList) {
  948. },
  949. //点击文件的钩子
  950. onPreview2(file) {
  951. window.location.href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  952. },
  953. // 文件超出限制
  954. exceed3(files, fileList) {
  955. this.$message.warning(
  956. `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  957. } 个文件,请取消要替换的文件`
  958. );
  959. },
  960. //文件上传成功时的钩子
  961. upLoadSuccess3(response, file, fileList) {
  962. this.$message({
  963. message: response.msg,
  964. type: 'success'
  965. });
  966. },
  967. //文件上传失败时的钩子
  968. upLoadError3(response, file, fileList) {
  969. console.log("项目添加失败");
  970. },
  971. //删除文件时出发的事件
  972. beforeRemove3(file, fileList) {
  973. const that = this;
  974. var url = "/api/Resource/DelloadOfficialActivities"
  975. this.$axios({
  976. method: 'post',
  977. url: url,
  978. headers: {
  979. Authorization: 'Bearer ' + that.token
  980. },
  981. data: {
  982. Id: file.id,
  983. DeleteUserId: that.userId
  984. }
  985. }).then(function (res) {
  986. if (res.data.code == 200) {
  987. that.$message({
  988. message: res.data.msg,
  989. type: 'success'
  990. });
  991. setTimeout(() => {
  992. that.$router.push('/home/OfficialActivities')
  993. }, 3000);
  994. } else {
  995. that.$message.error(res.data.msg);
  996. }
  997. })
  998. },
  999. //文件状态改变时的钩子
  1000. onChange3(file, fileList) {
  1001. },
  1002. //点击文件的钩子
  1003. onPreview3(file) {
  1004. let href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  1005. var a = document.createElement("a");
  1006. a.href = href;
  1007. a.download = file.name;
  1008. a.style.display = "none";
  1009. document.body.appendChild(a);
  1010. a.click();
  1011. a.remove();
  1012. //window.location.href = "http://132.232.92.186:24/Office/GrpFile/商邀相关文件/" + file.name
  1013. },
  1014. //返回
  1015. returnbtn(){
  1016. this.$router.push({
  1017. path: "/home/OfficialActivities",
  1018. query: {
  1019. DiId: this.DiId,
  1020. }
  1021. })
  1022. },
  1023. // 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用,function(file, fileList)
  1024. handleChange(file, fileList) {
  1025. console.log(file);
  1026. console.log(fileList);
  1027. this.fileList = fileList
  1028. },
  1029. //删除文件
  1030. beforeRemove(file,fileList){
  1031. if(file && file.status=="success"){
  1032. return this.$confirm('此文件已上传至服务器此操作将永久删除该文件, 是否继续?', '提示', {
  1033. confirmButtonText: '确定',
  1034. cancelButtonText: '取消',
  1035. type: 'warning'
  1036. }).then(() => {
  1037. // this.$message({
  1038. // type: 'success',
  1039. // message: '删除成功!'
  1040. // });
  1041. }).catch(() => {
  1042. this.$message({
  1043. type: 'info',
  1044. message: '已取消删除'
  1045. });
  1046. reject(false)
  1047. });
  1048. }
  1049. },
  1050. // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。function(file, fileList)
  1051. handleRemove(file, fileList) {
  1052. this.fileList = fileList
  1053. if (file && file.status=="success") {
  1054. var that = this;
  1055. var url = "/api/Resource/OfficialActivitiesDelFile"
  1056. this.$axios({
  1057. method: 'post',
  1058. url: url,
  1059. headers: {
  1060. Authorization: 'Bearer ' + that.token
  1061. },
  1062. data:{
  1063. id:that.id,
  1064. fileName:file.name
  1065. }
  1066. }).then(function (res) {
  1067. if (res.data.code == 200) {
  1068. that.$message.success(res.data.msg);
  1069. } else {
  1070. that.$message.error(res.data.msg);
  1071. }
  1072. })
  1073. }
  1074. },
  1075. //点击文件列表中已上传的文件
  1076. handlePreview(file){
  1077. console.log(file);
  1078. window.open(file.url);
  1079. },
  1080. //上传服务器
  1081. submitUpload(val) {
  1082. // console.log(this.id);
  1083. var verdict=false
  1084. if(this.id==undefined){
  1085. this.id==val
  1086. }
  1087. this.Emailscreenshotdata.id=val;
  1088. this.Emailscreenshotdata.diId=this.DiId;
  1089. this.Emailscreenshotdata.currUserId=this.userId;
  1090. //判断是否有文件再上传
  1091. if (this.fileList.length === 0) {
  1092. return this.$message.warning('请选取文件后再上传');
  1093. }
  1094. // 下面的代码将创建一个空的FormData对象:
  1095. const formData = new FormData()
  1096. // 你可以使用FormData.append来添加键/值对到表单里面;
  1097. this.fileList.forEach((file) => {
  1098. if(file.raw!=undefined){
  1099. verdict=true;
  1100. formData.append('files', file.raw);
  1101. }
  1102. })
  1103. formData.append('id', this.Emailscreenshotdata.id);
  1104. formData.append('diId', this.Emailscreenshotdata.diId);
  1105. formData.append('currUserId', this.Emailscreenshotdata.currUserId);
  1106. if(!verdict){
  1107. return
  1108. }
  1109. var that = this;
  1110. var url = "/api/Resource/OfficialActivitiesUploadFiles"
  1111. this.$axios({
  1112. method: 'post',
  1113. url: url,
  1114. headers: {
  1115. Authorization: 'Bearer ' + that.token
  1116. },
  1117. data:formData
  1118. }).then(function (res) {
  1119. if (res.data.code == 200) {
  1120. that.$message.success(res.data.msg);
  1121. that.fileList = []
  1122. for(let i=0;i<res.data.data.fileUrls.length;i++){
  1123. that.fileList.push({'name':res.data.data.fileUrls[i].split('/')[7],'url':res.data.data.fileUrls[i]})
  1124. }
  1125. } else {
  1126. that.$message.error(res.data.msg);
  1127. }
  1128. })
  1129. },
  1130. //确认邀请
  1131. OfficialActivitiesInviteOperation(val){
  1132. var that = this;
  1133. var url = "/api/Resource/OfficialActivitiesInviteOperation"
  1134. this.$axios({
  1135. method: 'post',
  1136. url: url,
  1137. headers: {
  1138. Authorization: 'Bearer ' + that.token
  1139. },
  1140. data:{
  1141. id:that.id,
  1142. type:val
  1143. }
  1144. }).then(function (res) {
  1145. if (res.data.code == 200) {
  1146. that.QueryOfficialActivitiesById()
  1147. that.$message.success(res.data.msg);
  1148. } else {
  1149. that.$message.error(res.data.msg);
  1150. }
  1151. })
  1152. }
  1153. },
  1154. mounted() {
  1155. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  1156. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  1157. this.gwcfPermissions=JSON.parse(localStorage.getItem('Permissions'));
  1158. this.DiId = parseInt(this.$route.query.DiId)
  1159. this.PostTourClientListByDiId();
  1160. console.log(this.gwcfPermissions);
  1161. for(let k=0;k<this.gwcfPermissions.length;k++){
  1162. if(this.gwcfPermissions[k].funid==12){
  1163. this.btnPermissions=true;
  1164. }
  1165. }
  1166. this.QuerySetData();
  1167. this.id = this.$route.query.id
  1168. this.headers1.DiId = this.DiId
  1169. this.headers1.CreateUserId = this.userId
  1170. this.headers2.DiId = this.DiId
  1171. this.headers2.CreateUserId = this.userId
  1172. this.headers3.DiId = this.DiId
  1173. this.headers3.CreateUserId = this.userId
  1174. this.GetGroupAllList();
  1175. if (this.DiId == null && this.DiId == undefined && this.DiId == 0) {
  1176. this.DiId = '';
  1177. }
  1178. if (this.id != null && this.id != undefined && this.id != 0) {
  1179. this.QueryOfficialActivitiesById();
  1180. this.title = "修改公务出访客户资料";
  1181. this.OpOfficialActivitiesDto.status = 2
  1182. this.isShow = true
  1183. } else {
  1184. this.OpOfficialActivitiesDto.status = 1
  1185. this.title = "新增公务出访客户资料"
  1186. this.isShow = false
  1187. }
  1188. }
  1189. }
  1190. </script>
  1191. <style>
  1192. .car_add .communal-title {
  1193. display: flex;
  1194. font-size: 17px;
  1195. font-weight: 600;
  1196. color: #555;
  1197. margin-bottom: 20px;
  1198. justify-content: space-between;
  1199. align-items: center;
  1200. }
  1201. .appraise-box {
  1202. display: flex;
  1203. flex-wrap: wrap;
  1204. justify-content: space-between;
  1205. margin: 50px 0;
  1206. }
  1207. .appraise-box>div {
  1208. width: 30%;
  1209. }
  1210. .communal-box {
  1211. display: flex;
  1212. }
  1213. .communal-box>button {
  1214. margin-left: 10px;
  1215. padding: 8px 20px;
  1216. }
  1217. .car_add {
  1218. background-color: #fff;
  1219. padding: 20px;
  1220. box-shadow: 0 0 5px #0005;
  1221. border-radius: 10px;
  1222. min-height: 810px;
  1223. }
  1224. .visit-box .el-date-editor.el-input, .el-date-editor.el-input__inner{
  1225. width: 100%;
  1226. }
  1227. .visit-box .el-select{
  1228. width: 100%;
  1229. }
  1230. .reqSampleArr-ul{
  1231. position:absolute;
  1232. z-index:1;
  1233. background-color: #FFFFFF;
  1234. box-shadow: #5555 0 0 10px;
  1235. border-radius:5px ;
  1236. max-height: 400px;
  1237. overflow: auto;
  1238. }
  1239. .reqSampleArr-li:hover{
  1240. background-color: #5551;
  1241. }
  1242. .reqSampleArr-li{
  1243. line-height: 20px;
  1244. padding: 10px;
  1245. cursor: pointer;
  1246. }
  1247. .ps-title{
  1248. color: red;
  1249. font-size: 12px;
  1250. }
  1251. @media screen and (max-width: 1700px) {
  1252. .appraise-box>div {
  1253. width: 48%;
  1254. }
  1255. .appraise-box>div el-form-item__content {
  1256. width: 260px !important;
  1257. }
  1258. }
  1259. </style>