OpInvitationOfficialActivities.vue 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971
  1. <template>
  2. <div class="car_add">
  3. <div>
  4. <div class="communal-title">
  5. <div>{{ title }}</div>
  6. </div>
  7. </div>
  8. <hr style='background-color:#5555; height:1px; border:none;' />
  9. <div>
  10. <el-form :model="delegationInfo" class="demo-ruleForm">
  11. <div style="display: flex;">
  12. <div style="width: 25%;">
  13. <el-form-item label="团组名称:" label-width="160px">
  14. <el-select v-model="DiIdSelect" clearable filterable placeholder="团组选择"
  15. @change="DecreasePaymentsChange" :disabled="isShow" style="width: 100%;">
  16. <el-option v-for="item in delegationInfoList" :key="item.id" :label="item.teamName"
  17. :value="item.id">
  18. </el-option>
  19. </el-select>
  20. </el-form-item>
  21. </div>
  22. <div style="width: 25%;">
  23. <el-form-item label="团 号:" prop="tourCode" label-width="160px">
  24. <el-input placeholder="团号" v-model="delegationInfo.tourCode" :disabled="true">
  25. </el-input>
  26. </el-form-item>
  27. </div>
  28. <div style="width: 25%;">
  29. <el-form-item label="客户:" prop="clientName" label-width="160px">
  30. <el-input placeholder="客户" v-model="delegationInfo.clientName" :disabled="true">
  31. </el-input>
  32. </el-form-item>
  33. </div>
  34. <div style="width: 25%;">
  35. <el-form-item label="出访国家:" prop="visitCountry" label-width="160px">
  36. <el-input placeholder="出访国家" v-model="delegationInfo.visitCountry" :disabled="true">
  37. </el-input>
  38. </el-form-item>
  39. </div>
  40. </div>
  41. </el-form>
  42. <el-form :model="InvitationOfficialActivities" ref="InvitationOfficialActivities"
  43. :rules="InvitationOfficialActivitiesRules" label-width="160px" class="demo-ruleForm">
  44. <div style="display:flex ;">
  45. <div style="width: 25%;">
  46. <el-form-item label="邀请方地区:" prop="inviterArea" label-width="160px">
  47. <el-input placeholder="邀请方地区" v-model="InvitationOfficialActivities.inviterArea">
  48. </el-input>
  49. </el-form-item>
  50. </div>
  51. <div style="width: 25%;">
  52. <el-form-item label="邀请方:" prop="inviter" label-width="160px">
  53. <el-input placeholder="邀请方" v-model="InvitationOfficialActivities.inviter">
  54. </el-input>
  55. </el-form-item>
  56. </div>
  57. <div style="width: 25%;">
  58. <el-form-item label="邀请时间:" prop="inviteTime" label-width="160px">
  59. <el-date-picker value-format="yyyy-MM-dd" v-model="InvitationOfficialActivities.inviteTime"
  60. type="date" placeholder="选择日期">
  61. </el-date-picker>
  62. </el-form-item>
  63. </div>
  64. <div style="width: 25%;">
  65. <el-form-item label="是否到场:" prop="isGoOfficaiaBussiness" label-width="160px">
  66. <el-radio-group v-model="InvitationOfficialActivities.isGoOfficaiaBussiness">
  67. <el-radio :label=1>是</el-radio>
  68. <el-radio :label=0>否</el-radio>
  69. </el-radio-group>
  70. </el-form-item>
  71. </div>
  72. </div>
  73. <div style="display:flex ;">
  74. <div style="width: 25%;">
  75. <el-form-item label="联系人:" prop="contact" label-width="160px">
  76. <el-input placeholder="联系人" v-model="InvitationOfficialActivities.contact">
  77. </el-input>
  78. </el-form-item>
  79. </div>
  80. <div style="width: 25%;">
  81. <el-form-item label="联系电话:" prop="tel" label-width="160px">
  82. <el-input placeholder="联系电话" v-model="InvitationOfficialActivities.tel">
  83. </el-input>
  84. </el-form-item>
  85. </div>
  86. <div style="width: 25%;">
  87. <el-form-item label="电子邮箱:" prop="email" label-width="160px">
  88. <el-input placeholder="电子邮箱" v-model="InvitationOfficialActivities.email">
  89. </el-input>
  90. </el-form-item>
  91. </div>
  92. <div style="width: 25%;">
  93. <el-form-item label="传真号码:" prop="fax" label-width="160px">
  94. <el-input placeholder="传真号码" v-model="InvitationOfficialActivities.fax">
  95. </el-input>
  96. </el-form-item>
  97. </div>
  98. </div>
  99. <div style="display: flex;">
  100. <div style="width: 50%;">
  101. <el-form-item label="邀请方地址:" prop="address" label-width="160px">
  102. <el-input type="textarea" :rows="5" placeholder="邀请方地址"
  103. v-model="InvitationOfficialActivities.address"></el-input>
  104. </el-form-item>
  105. </div>
  106. <div style="width: 50%;">
  107. <el-form-item label="其他信息:" prop="otherInformation" label-width="160px">
  108. <el-input type="textarea" :rows="5" placeholder="其他信息"
  109. v-model="InvitationOfficialActivities.otherInformation"></el-input>
  110. </el-form-item>
  111. </div>
  112. </div>
  113. <div style="display:flex ;flex-wrap: wrap;">
  114. <div style="width: 25%;">
  115. <div style="display: flex;">
  116. <div style="width: 72%;">
  117. <el-form-item label="公务活动费:" prop="eventsCost" label-width="160px">
  118. <el-input-number @change="computerenminbi" :precision="2" placeholder="公务活动费" v-model="InvitationOfficialActivities.eventsCost" :controls='false'>
  119. </el-input-number>
  120. </el-form-item>
  121. </div>
  122. <div style="width: 28%;">
  123. <el-form-item prop="eventsCurrency" label-width="5px">
  124. <el-select @change="computerenminbi" v-model="InvitationOfficialActivities.eventsCurrency" placeholder="币种">
  125. <el-option v-for="item in rateList" :key="item.currencyId"
  126. :label="item.currencyCode" :value="item.currencyId"></el-option>
  127. </el-select>
  128. </el-form-item>
  129. </div>
  130. </div>
  131. </div>
  132. <div style="width: 25%;">
  133. <div style="display: flex;">
  134. <div style="width: 72%;">
  135. <el-form-item label="公务翻译费:" prop="translateCost" label-width="160px">
  136. <el-input-number @change="computerenminbi" :precision="2" placeholder="公务翻译费" v-model="InvitationOfficialActivities.translateCost" :controls='false'>
  137. </el-input-number>
  138. </el-form-item>
  139. </div>
  140. <div style="width: 28%;">
  141. <el-form-item prop="translateCurrency" label-width="5px">
  142. <el-select @change="computerenminbi" v-model="InvitationOfficialActivities.translateCurrency" placeholder="币种">
  143. <el-option v-for="item in rateList" :key="item.currencyId"
  144. :label="item.currencyCode" :value="item.currencyId"></el-option>
  145. </el-select>
  146. </el-form-item>
  147. </div>
  148. </div>
  149. </div>
  150. <div style="width: 25%;">
  151. <div style="display: flex;">
  152. <div style="width: 72%;">
  153. <el-form-item label="快递费:" prop="sendCost" label-width="160px">
  154. <el-input-number @change="computerenminbi" :precision="2" v-model="InvitationOfficialActivities.sendCost" :controls='false'
  155. ></el-input-number>
  156. </el-form-item>
  157. </div>
  158. <div style="width: 28%;">
  159. <el-form-item prop="sendCurrency" label-width="5px">
  160. <el-select @change="computerenminbi" v-model="InvitationOfficialActivities.sendCurrency" placeholder="币种">
  161. <el-option v-for="item in rateList" :key="item.currencyId"
  162. :label="item.currencyCode" :value="item.currencyId"></el-option>
  163. </el-select>
  164. </el-form-item>
  165. </div>
  166. </div>
  167. </div>
  168. <div style="width: 25%;">
  169. <div style="display: flex;">
  170. <div style="width: 72%;">
  171. <el-form-item label="邀请费用:" prop="inviteCost" label-width="160px">
  172. <el-input-number @change="computerenminbi" :precision="2" placeholder="邀请费用" v-model="InvitationOfficialActivities.inviteCost" :controls='false'>
  173. </el-input-number>
  174. </el-form-item>
  175. </div>
  176. <div style="width: 28%;">
  177. <el-form-item prop="inviteCurrency" label-width="5px">
  178. <el-select @change="computerenminbi" v-model="InvitationOfficialActivities.inviteCurrency" placeholder="币种">
  179. <el-option v-for="item in rateList" :key="item.currencyId"
  180. :label="item.currencyCode" :value="item.currencyId"></el-option>
  181. </el-select>
  182. </el-form-item>
  183. </div>
  184. </div>
  185. </div>
  186. <div style="width: 25%;">
  187. <div style="display: flex;">
  188. <div style="width: 72%;">
  189. <el-form-item label="支付总费用:" prop="payMoney" label-width="160px">
  190. <el-input-number :disabled="true" :precision="2" v-model="InvitationOfficialActivities.payMoney" :controls='false'
  191. ></el-input-number>
  192. </el-form-item>
  193. </div>
  194. <div style="width: 28%;">
  195. <el-form-item prop="paymentCurrency" label-width="5px">
  196. <el-select :disabled="true" v-model="InvitationOfficialActivities.paymentCurrency" placeholder="币种">
  197. <el-option v-for="item in rateList" :key="item.currencyId"
  198. :label="item.currencyCode" :value="item.currencyId"></el-option>
  199. </el-select>
  200. </el-form-item>
  201. </div>
  202. </div>
  203. </div>
  204. <div style="width: 25%;">
  205. <el-form-item label="收款方:" prop="payee" label-width="160px">
  206. <el-input placeholder="收款方" v-model="InvitationOfficialActivities.payee">
  207. </el-input>
  208. </el-form-item>
  209. </div>
  210. <div style="width: 25%;">
  211. <el-form-item label="费用标识:" prop="orbitalPrivateTransfer">
  212. <el-select v-model="InvitationOfficialActivities.orbitalPrivateTransfer" placeholder="费用标识"
  213. style="width: 100%;">
  214. <el-option v-for="item in costIdentificationData" :key="item.id" :label="item.name" :value="item.id">
  215. </el-option>
  216. </el-select>
  217. </el-form-item>
  218. </div>
  219. <div style="width: 25%;">
  220. <el-form-item label="消费日期:" prop="consumptionDate">
  221. <el-date-picker value-format="yyyy-MM-dd" v-model="InvitationOfficialActivities.consumptionDate"
  222. type="date" placeholder="选择日期">
  223. </el-date-picker>
  224. </el-form-item>
  225. </div>
  226. <div style="width: 25%;">
  227. <el-form-item label="消费方式:" prop="consumptionPatterns">
  228. <el-input placeholder="消费方式" v-model="InvitationOfficialActivities.consumptionPatterns">
  229. </el-input>
  230. </el-form-item>
  231. </div>
  232. <div style="width: 25%;">
  233. <el-form-item label="支付方式:" prop="payDId">
  234. <el-select v-model="InvitationOfficialActivities.payDId" placeholder="支付方式">
  235. <el-option v-for="item in payment" :key="item.id" :label="item.name" :value="item.id">
  236. </el-option>
  237. </el-select>
  238. </el-form-item>
  239. </div>
  240. <div v-if="InvitationOfficialActivities.payDId==72" style="width: 25%;">
  241. <el-form-item label="卡类型:" prop="ctdId">
  242. <el-select @change="cardhandoff" v-model="InvitationOfficialActivities.ctdId" placeholder="卡类型">
  243. <el-option v-for="item in cardTypeData" :key="item.id" :label="item.name" :value="item.id">
  244. </el-option>
  245. </el-select>
  246. </el-form-item>
  247. </div>
  248. <div v-if="InvitationOfficialActivities.payDId==72" style="width: 25%;">
  249. <el-form-item label="银行卡号:" prop="bankNo">
  250. <el-input :disabled="true" placeholder="银行卡号" v-model="InvitationOfficialActivities.bankNo">
  251. </el-input>
  252. </el-form-item>
  253. </div>
  254. <div v-if="InvitationOfficialActivities.payDId==72" style="width: 25%;">
  255. <el-form-item label="持卡人姓名:" prop="cardholderName">
  256. <el-input :disabled="true" placeholder="持卡人姓名" v-model="InvitationOfficialActivities.cardholderName">
  257. </el-input>
  258. </el-form-item>
  259. </div>
  260. <div v-if="InvitationOfficialActivities.payDId==73||InvitationOfficialActivities.payDId==83" style="width: 25%;">
  261. <el-form-item label="公司银行卡号:" prop="companyBankNo">
  262. <el-input placeholder="公司银行卡号" v-model="InvitationOfficialActivities.companyBankNo">
  263. </el-input>
  264. </el-form-item>
  265. </div>
  266. <div v-if="InvitationOfficialActivities.payDId==73||InvitationOfficialActivities.payDId==83" style="width: 25%;">
  267. <el-form-item label="对方开户行:" prop="otherBankName">
  268. <el-input placeholder="对方开户行" v-model="InvitationOfficialActivities.otherBankName">
  269. </el-input>
  270. </el-form-item>
  271. </div>
  272. <div v-if="InvitationOfficialActivities.payDId==73||InvitationOfficialActivities.payDId==83" style="width: 25%;">
  273. <el-form-item label="对方银行账号:" prop="otherSideNo">
  274. <el-input placeholder="对方银行账号" v-model="InvitationOfficialActivities.otherSideNo">
  275. </el-input>
  276. </el-form-item>
  277. </div>
  278. <div v-if="InvitationOfficialActivities.payDId==73||InvitationOfficialActivities.payDId==83" style="width: 25%;">
  279. <el-form-item label="对方姓名:" prop="otherSideName">
  280. <el-input placeholder="对方姓名" v-model="InvitationOfficialActivities.otherSideName">
  281. </el-input>
  282. </el-form-item>
  283. </div>
  284. <div style="width: 25%;">
  285. <el-form-item label="附件:" prop="fileUrl" label-width="160px">
  286. <el-upload :file-list="uploadFiles" ref="upload" :on-success="upLoadSuccess"
  287. :on-error="upLoadError" :before-remove="beforeRemove" :on-change="onChange" :limit="1"
  288. :on-exceed="exceed" :action="uploadURL" :headers="headers" :auto-upload="false">
  289. <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
  290. <!-- <el-button style="margin-left: 10px;" size="small" type="success"
  291. @click="submitUpload">上传到服务器</el-button> -->
  292. </el-upload>
  293. </el-form-item>
  294. </div>
  295. </div>
  296. <div style="display: flex;">
  297. <div style="width: 100%;">
  298. <el-form-item label="备 注:" prop="remark" label-width="160px">
  299. <el-input type="textarea" :rows="5" placeholder="备注"
  300. v-model="InvitationOfficialActivities.remark"></el-input>
  301. </el-form-item>
  302. </div>
  303. </div>
  304. <el-form-item>
  305. <div style="text-align: right;">
  306. <el-button type="primary" @click="addBtn">保存</el-button>
  307. <el-button @click="cancelbtn">取消</el-button>
  308. </div>
  309. </el-form-item>
  310. </el-form>
  311. </div>
  312. </div>
  313. </template>
  314. <script>
  315. export default {
  316. data() {
  317. return {
  318. uploadURL: "http://132.232.92.186:8888/api/Groups/UploadProject",
  319. projectName: "",
  320. uploadFiles: [],//上传的文件列表
  321. DelfileName: "",
  322. title: "新增商邀费用",
  323. token: '',
  324. userId: 0,
  325. id: '',
  326. DiId: '',
  327. isShow: false,
  328. DiIdSelect: '',
  329. delegationInfo: {},
  330. IsAuditGM: 0,
  331. delegationInfoList: [],//团组下拉框
  332. payment: [],//支付方式下拉框
  333. cardTypeData:[],//卡类型下拉框
  334. costIdentificationData:[],//费用标识下拉框
  335. InvitationOfficialActivities: {
  336. status: 0,
  337. payDId: 0,
  338. orbitalPrivateTransfer: 0,
  339. payee: '',
  340. id: 0,
  341. diId: '',
  342. inviterArea: '',
  343. inviter: '',
  344. inviteTime: this.transformDateFormat(new Date()),
  345. attachment: '',
  346. payMoney:0,
  347. paymentCurrency:'',
  348. eventsCost:0,
  349. eventsCurrency:836,
  350. inviteCost: 0,
  351. inviteCurrency: 836,
  352. translateCost:0,
  353. translateCurrency: 836,
  354. sendCost: 0,
  355. sendCurrency:836,
  356. isGoOfficaiaBussiness: 0,
  357. createUserId: 0,
  358. remark: '',
  359. address: '',
  360. contact: '',
  361. job: '',
  362. tel: '',
  363. email: '',
  364. fax: '',
  365. otherInformation: '',
  366. consumptionDate: '',//消费日期
  367. consumptionPatterns: '',//消费方式
  368. ctdId: '',//卡类型
  369. bankNo: '',//银行卡号
  370. cardholderName: '',//持卡人姓名
  371. companyBankNo: '',//公司银行卡号
  372. otherBankName: '',//对方开户行
  373. otherSideNo: '',//对方银行账号
  374. otherSideName: '',//对方姓名
  375. },
  376. headers: {
  377. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  378. TypeName: "B"
  379. },
  380. InvitationOfficialActivitiesRules: {
  381. inviteCost: [
  382. { required: true, message: '请输入费用金额', trigger: 'blur' },
  383. ],
  384. eventsCost: [
  385. { required: true, message: '请输入费用金额', trigger: 'blur' },
  386. ],
  387. translateCost: [
  388. { required: true, message: '请输入费用金额', trigger: 'blur' },
  389. ],
  390. sendCost: [
  391. { required: true, message: '请输入费用金额', trigger: 'blur' },
  392. ],
  393. payMoney: [
  394. { required: true, message: '请输入费用金额', trigger: 'blur' },
  395. ],
  396. companyBankNo: [
  397. { required: true, message: '请输入', trigger: 'blur' },
  398. ],
  399. otherBankName: [
  400. { required: true, message: '请输入', trigger: 'blur' },
  401. ],
  402. otherSideNo: [
  403. { required: true, message: '请输入', trigger: 'blur' },
  404. ],
  405. otherSideName: [
  406. { required: true, message: '请输入', trigger: 'blur' },
  407. ],
  408. inviterArea: [
  409. { required: true, message: '请输入邀请方地区', trigger: 'change' },
  410. { required: true, message: '请输入邀请方地区', trigger: 'blur' },
  411. ],
  412. inviter: [
  413. { required: true, message: '请输入邀请方', trigger: 'change' },
  414. { required: true, message: '请输入邀请方', trigger: 'blur' },
  415. ],
  416. inviteTime: [
  417. { required: true, message: '请选择邀请时间', trigger: 'change' },
  418. { required: true, message: '请选择邀请时间', trigger: 'blur' },
  419. ],
  420. consumptionDate: [
  421. { required: true, message: '请选择邀请时间', trigger: 'change' },
  422. { required: true, message: '请选择邀请时间', trigger: 'blur' },
  423. ],
  424. consumptionPatterns: [
  425. { required: true, message: '请选择邀请时间', trigger: 'change' },
  426. { required: true, message: '请选择邀请时间', trigger: 'blur' },
  427. ],
  428. contact: [
  429. { required: true, message: '请输入联系人', trigger: 'change' },
  430. { required: true, message: '请输入联系人', trigger: 'blur' },
  431. ],
  432. tel: [
  433. { required: true, message: '请输入联系方式', trigger: 'change' },
  434. { required: true, message: '请输入联系方式', trigger: 'blur' },
  435. ],
  436. address: [
  437. { required: true, message: '请输入邀请方地址', trigger: 'change' },
  438. { required: true, message: '请输入邀请方地址', trigger: 'blur' },
  439. ],
  440. payee: [
  441. { required: true, message: '请输入收款方', trigger: 'change' },
  442. { required: true, message: '请输入收款方', trigger: 'blur' },
  443. ],
  444. inviteCurrency: [
  445. { required: true, message: '请选择币种', trigger: 'change' },
  446. { required: true, message: '请选择币种', trigger: 'blur' },
  447. ],
  448. eventsCurrency: [
  449. { required: true, message: '请选择币种', trigger: 'change' },
  450. { required: true, message: '请选择币种', trigger: 'blur' },
  451. ],
  452. translateCurrency: [
  453. { required: true, message: '请选择币种', trigger: 'change' },
  454. { required: true, message: '请选择币种', trigger: 'blur' },
  455. ],
  456. sendCurrency: [
  457. { required: true, message: '请选择币种', trigger: 'change' },
  458. { required: true, message: '请选择币种', trigger: 'blur' },
  459. ],
  460. paymentCurrency: [
  461. { required: true, message: '请选择币种', trigger: 'change' },
  462. { required: true, message: '请选择币种', trigger: 'blur' },
  463. ],
  464. },
  465. rateList: [],
  466. }
  467. },
  468. methods: {
  469. //卡类型切换
  470. cardhandoff(val){
  471. console.log(val)
  472. for(var i=0;i<this.cardTypeData.length;i++){
  473. if(val==this.cardTypeData[i].id){
  474. this.InvitationOfficialActivities.bankNo=this.cardTypeData[i].remark;
  475. this.InvitationOfficialActivities.cardholderName=this.cardTypeData[i].cardholder;
  476. }
  477. }
  478. },
  479. //获取基础数据
  480. InvitationOfficialActivityInitBasicData() {
  481. var url = "/api/Groups/InvitationOfficialActivityInitBasicData"
  482. var that = this
  483. this.$axios({
  484. method: 'post',
  485. url: url,
  486. headers: {
  487. Authorization: 'Bearer ' + this.token
  488. }
  489. }).then(function (res) {
  490. if (res.data.code == 200) {
  491. console.log(res)
  492. that.payment = res.data.data.payTypeData;
  493. that.cardTypeData = res.data.data.cardTypeData;
  494. that.costIdentificationData = res.data.data.costIdentificationData;
  495. //下拉框初始值
  496. that.InvitationOfficialActivities.orbitalPrivateTransfer=that.costIdentificationData[0].id;
  497. that.InvitationOfficialActivities.payDId=that.payment[0].id;
  498. that.InvitationOfficialActivities.ctdId=that.cardTypeData[0].id;
  499. that.InvitationOfficialActivities.bankNo=that.cardTypeData[0].remark;
  500. that.InvitationOfficialActivities.cardholderName=that.cardTypeData[0].cardholder;
  501. if (that.id != null && that.id != undefined && that.id != 0) {
  502. that.InvitationOfficialActivitiesById();
  503. that.title = "修改商邀费用";
  504. that.InvitationOfficialActivities.status = 2
  505. that.isShow = true
  506. } else {
  507. that.InvitationOfficialActivities.status = 1
  508. that.title = "新增商邀费用"
  509. that.isShow = false
  510. }
  511. }else{
  512. that.$message.error(res.data.msg);
  513. }
  514. })
  515. },
  516. //团组下拉框
  517. AirTicketResSelect() {
  518. var url = "/api/Groups/DecreasePaymentsSelect"
  519. var that = this
  520. this.$axios({
  521. method: 'post',
  522. url: url,
  523. headers: {
  524. Authorization: 'Bearer ' + this.token
  525. },
  526. data: {
  527. userId: that.userId,
  528. ctId: 81
  529. }
  530. }).then(function (res) {
  531. if (res.data.code == 200) {
  532. console.log(res)
  533. that.delegationInfoList = res.data.data.groupName;
  534. that.DiIdSelect = parseInt(that.DiId)
  535. for (let index = 0; index < that.delegationInfoList.length; index++) {
  536. if (that.delegationInfoList[index].id == that.DiIdSelect) {
  537. that.delegationInfo = that.delegationInfoList[index];
  538. break;
  539. }
  540. }
  541. // that.payment = res.data.data.payment
  542. }
  543. })
  544. },
  545. InvitationOfficialActivitiesById() {
  546. var url = "/api/Groups/InvitationOfficialActivitiesById"
  547. var that = this
  548. this.$axios({
  549. method: 'post',
  550. url: url,
  551. headers: {
  552. Authorization: 'Bearer ' + this.token
  553. },
  554. data: {
  555. Id: that.id,
  556. portType: 1
  557. }
  558. }).then(function (res) {
  559. if (res.data.code == 200) {
  560. console.log(res.data.data)
  561. that.InvitationOfficialActivities.payDId = res.data.data._CreditCard.payDId;
  562. that.InvitationOfficialActivities.orbitalPrivateTransfer = res.data.data._CreditCard.orbitalPrivateTransfer;
  563. that.InvitationOfficialActivities.payee = res.data.data._CreditCard.payee;
  564. that.InvitationOfficialActivities.id = res.data.data._Invitation.id;
  565. that.InvitationOfficialActivities.diId = res.data.data._Invitation.diId;
  566. that.InvitationOfficialActivities.inviterArea = res.data.data._Invitation.inviterArea;
  567. that.InvitationOfficialActivities.inviter = res.data.data._Invitation.inviter;
  568. that.InvitationOfficialActivities.inviteTime = res.data.data._Invitation.inviteTime;
  569. that.InvitationOfficialActivities.attachment = res.data.data._Invitation.attachment;
  570. that.projectName = res.data.data._Invitation.attachment;
  571. that.InvitationOfficialActivities.inviteCost = res.data.data._Invitation.inviteCost;
  572. that.InvitationOfficialActivities.inviteCurrency = res.data.data._Invitation.inviteCurrency;
  573. that.InvitationOfficialActivities.sendCost = res.data.data._Invitation.sendCost;
  574. that.InvitationOfficialActivities.sendCurrency = res.data.data._Invitation.sendCurrency;
  575. that.InvitationOfficialActivities.eventsCost = res.data.data._Invitation.eventsCost;
  576. that.InvitationOfficialActivities.eventsCurrency = res.data.data._Invitation.eventsCurrency;
  577. that.InvitationOfficialActivities.translateCost = res.data.data._Invitation.translateCost;
  578. that.InvitationOfficialActivities.translateCurrency = res.data.data._Invitation.translateCurrency;
  579. that.InvitationOfficialActivities.isGoOfficaiaBussiness = res.data.data._Invitation.isGoOfficaiaBussiness;
  580. that.InvitationOfficialActivities.remark = res.data.data._Invitation.remark;
  581. that.InvitationOfficialActivities.address = res.data.data._InvitationData.address;
  582. that.InvitationOfficialActivities.contact = res.data.data._InvitationData.contact;
  583. that.InvitationOfficialActivities.job = res.data.data._InvitationData.job;
  584. that.InvitationOfficialActivities.tel = res.data.data._InvitationData.tel;
  585. that.IsAuditGM = res.data.data._CreditCard.isAuditGM;
  586. //
  587. that.InvitationOfficialActivities.consumptionDate = res.data.data._CreditCard.consumptionDate;
  588. that.InvitationOfficialActivities.consumptionPatterns = res.data.data._CreditCard.consumptionPatterns;
  589. that.InvitationOfficialActivities.ctdId = res.data.data._CreditCard.ctdId;
  590. that.InvitationOfficialActivities.bankNo = res.data.data._CreditCard.bankNo;
  591. that.InvitationOfficialActivities.cardholderName = res.data.data._CreditCard.cardholderName;
  592. that.InvitationOfficialActivities.companyBankNo = res.data.data._CreditCard.companyBankNo;
  593. that.InvitationOfficialActivities.otherBankName = res.data.data._CreditCard.otherBankName;
  594. that.InvitationOfficialActivities.otherSideNo = res.data.data._CreditCard.otherSideNo;
  595. that.InvitationOfficialActivities.otherSideName = res.data.data._CreditCard.otherSideName;
  596. //
  597. that.InvitationOfficialActivities.payMoney=res.data.data._CreditCard.payMoney;
  598. that.InvitationOfficialActivities.paymentCurrency=res.data.data._CreditCard.paymentCurrency;
  599. that.InvitationOfficialActivities.email = res.data.data._InvitationData.email;
  600. that.InvitationOfficialActivities.fax = res.data.data._InvitationData.fax;
  601. that.InvitationOfficialActivities.otherInformation = res.data.data._InvitationData.remark;
  602. if (that.InvitationOfficialActivities.attachment != null && that.InvitationOfficialActivities.attachment != undefined && that.InvitationOfficialActivities.attachment != "") {
  603. that.uploadFiles.push({
  604. name: that.InvitationOfficialActivities.attachment,
  605. url: 'http://132.232.92.186:24/Office/GrpFile/商邀相关文件/',
  606. })
  607. }
  608. }
  609. })
  610. },
  611. //币种不同计算为人民币
  612. computerenminbi(){
  613. var eventsRate=0;
  614. var inviteRate=0;
  615. var translateRate=0;
  616. var sendRate=0;
  617. for (let h = 0; h < this.rateList.length; h++) {
  618. if(this.InvitationOfficialActivities.eventsCurrency==this.rateList[h].currencyId){
  619. eventsRate=this.rateList[h].rate;
  620. }
  621. if(this.InvitationOfficialActivities.inviteCurrency==this.rateList[h].currencyId){
  622. inviteRate=this.rateList[h].rate;
  623. }
  624. if(this.InvitationOfficialActivities.translateCurrency==this.rateList[h].currencyId){
  625. translateRate=this.rateList[h].rate;
  626. }
  627. if(this.InvitationOfficialActivities.sendCurrency==this.rateList[h].currencyId){
  628. sendRate=this.rateList[h].rate;
  629. }
  630. }
  631. if(
  632. this.InvitationOfficialActivities.eventsCurrency!=this.InvitationOfficialActivities.inviteCurrency
  633. ||this.InvitationOfficialActivities.inviteCurrency!=this.InvitationOfficialActivities.translateCurrency
  634. ||this.InvitationOfficialActivities.translateCurrency!=this.InvitationOfficialActivities.sendCurrency
  635. ||this.InvitationOfficialActivities.sendCurrency!=this.InvitationOfficialActivities.eventsCurrency
  636. ){
  637. this.InvitationOfficialActivities.paymentCurrency=836
  638. this.InvitationOfficialActivities.payMoney=(
  639. this.InvitationOfficialActivities.eventsCost*eventsRate+
  640. this.InvitationOfficialActivities.inviteCost*inviteRate+
  641. this.InvitationOfficialActivities.translateCost*translateRate+
  642. this.InvitationOfficialActivities.sendCost*sendRate
  643. );
  644. }else{
  645. this.InvitationOfficialActivities.paymentCurrency=this.InvitationOfficialActivities.eventsCurrency
  646. this.InvitationOfficialActivities.payMoney=(
  647. this.InvitationOfficialActivities.eventsCost+
  648. this.InvitationOfficialActivities.inviteCost+
  649. this.InvitationOfficialActivities.translateCost+
  650. this.InvitationOfficialActivities.sendCost
  651. );
  652. }
  653. },
  654. cancelbtn(){
  655. this.$router.push({
  656. path: "/home/InvitationOfficialActivities",
  657. query: {
  658. DiId: this.DiId,
  659. }
  660. })
  661. },
  662. //点击保存事件
  663. addBtn() {
  664. if (this.IsAuditGM == 1) {
  665. this.$message.error('已通过审核,不可修改!');
  666. } else {
  667. if (this.DiId == null && this.DiId == undefined && this.DiId == "") {
  668. this.$message.error("请选择团组名称");
  669. return;
  670. }
  671. const that = this;
  672. that.$refs.InvitationOfficialActivities.validate((valid) => {
  673. if (valid) {
  674. if (that.InvitationOfficialActivities.attachment == that.projectName) {
  675. if (that.DelfileName != null && that.DelfileName != "" && that.DelfileName != undefined) {
  676. that.$axios({
  677. method: 'post',
  678. url: "/api/Groups/DelFile",
  679. headers: {
  680. Authorization: 'Bearer ' + that.token
  681. },
  682. data: {
  683. fileName: that.DelfileName,
  684. id: that.id
  685. }
  686. }).then(function (res) {
  687. if (res.data.code == 200) {
  688. }
  689. })
  690. }
  691. that.InvitationOfficialActivities.attachment = that.projectName
  692. that.InvitationOfficialActivities.diId = that.DiIdSelect;
  693. that.InvitationOfficialActivities.createUserId = that.userId;
  694. var url = "/api/Groups/OpInvitationOfficialActivities"
  695. that.$axios({
  696. method: 'post',
  697. url: url,
  698. headers: {
  699. Authorization: 'Bearer ' + that.token
  700. },
  701. data: that.InvitationOfficialActivities
  702. }).then(function (res) {
  703. if (res.data.code == 200) {
  704. that.$message({
  705. message: res.data.msg,
  706. type: 'success'
  707. });
  708. setTimeout(() => {
  709. that.cancelbtn()
  710. }, 500);
  711. } else {
  712. that.$message.error(res.data.msg);
  713. }
  714. })
  715. } else {
  716. if (that.DelfileName != null && that.DelfileName != "" && that.DelfileName != undefined) {
  717. that.$axios({
  718. method: 'post',
  719. url: "/api/Groups/DelFile",
  720. headers: {
  721. Authorization: 'Bearer ' + that.token
  722. },
  723. data: {
  724. fileName: that.DelfileName,
  725. id: that.id
  726. }
  727. }).then(function (res) {
  728. if (res.data.code == 200) {
  729. }
  730. })
  731. }
  732. if (that.projectName != "" && that.projectName != null && that.projectName != undefined) {
  733. that.$refs.upload.submit();//上传文件到服务器
  734. } else {
  735. that.InvitationOfficialActivities.attachment = that.projectName
  736. that.InvitationOfficialActivities.diId = that.DiIdSelect;
  737. that.InvitationOfficialActivities.createUserId = that.userId;
  738. var url = "/api/Groups/OpInvitationOfficialActivities"
  739. that.$axios({
  740. method: 'post',
  741. url: url,
  742. headers: {
  743. Authorization: 'Bearer ' + that.token
  744. },
  745. data: that.InvitationOfficialActivities
  746. }).then(function (res) {
  747. if (res.data.code == 200) {
  748. that.$message({
  749. message: res.data.msg,
  750. type: 'success'
  751. });
  752. setTimeout(() => {
  753. that.cancelbtn();
  754. }, 500);
  755. } else {
  756. that.$message.error(res.data.msg);
  757. }
  758. })
  759. }
  760. }
  761. } else {
  762. this.$message.error('请完善信息在保存!');
  763. return false;
  764. }
  765. })
  766. }
  767. // 此时必填完成,做保存后的业务操作
  768. },
  769. DecreasePaymentsChange() {
  770. for (let index = 0; index < this.delegationInfoList.length; index++) {
  771. if (this.delegationInfoList[index].id == parseInt(this.DiIdSelect)) {
  772. this.delegationInfo = this.delegationInfoList[index];
  773. break;
  774. }
  775. }
  776. this.QueryRate();
  777. },
  778. //上传
  779. // 文件超出限制
  780. exceed(files, fileList) {
  781. this.$message.warning(
  782. `当前限制选择 1个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
  783. } 个文件,请取消要替换的文件`
  784. );
  785. },
  786. //文件上传成功时的钩子
  787. upLoadSuccess(response, file, fileList) {
  788. if (response.code == 200) {
  789. var that = this;
  790. that.$axios({
  791. method: 'post',
  792. url: "/api/Groups/DelFile",
  793. headers: {
  794. Authorization: 'Bearer ' + that.token
  795. },
  796. data: {
  797. fileName: that.DelfileName,
  798. id: that.id
  799. }
  800. }).then(function (res) {
  801. if (res.data.code == 200) {
  802. }
  803. })
  804. that.InvitationOfficialActivities.attachment = response.data
  805. that.InvitationOfficialActivities.diId = that.DiIdSelect;
  806. that.InvitationOfficialActivities.createUserId = that.userId;
  807. var url = "/api/Groups/OpInvitationOfficialActivities"
  808. that.$axios({
  809. method: 'post',
  810. url: url,
  811. headers: {
  812. Authorization: 'Bearer ' + that.token
  813. },
  814. data: that.InvitationOfficialActivities
  815. }).then(function (res) {
  816. if (res.data.code == 200) {
  817. that.$message({
  818. message: res.data.msg,
  819. type: 'success'
  820. });
  821. that.loading = true;
  822. setTimeout(() => {
  823. that.$router.push('/home/InvitationOfficialActivities')
  824. }, 500);
  825. } else {
  826. that.$message.error(res.data.msg);
  827. }
  828. })
  829. console.log("上传成功");
  830. } else {
  831. console.log("保存失败");
  832. }
  833. },
  834. //文件上传失败时的钩子
  835. upLoadError(response, file, fileList) {
  836. console.log("项目添加失败");
  837. },
  838. beforeRemove(file, fileList) {
  839. console.log(file.name)
  840. let id1 = this.uploadFiles.findIndex(item => {
  841. if (item.name == file.name) {
  842. return true
  843. }
  844. })
  845. this.uploadFiles.splice(id1, 1)
  846. this.projectName = ""
  847. this.DelfileName = file.name
  848. },
  849. onChange(file, fileList) {
  850. this.projectName = file.name
  851. },
  852. QueryRate() {
  853. var url = "/api/Business/PostGroupTeamRateByDiIdAndCTableId"
  854. var that = this
  855. this.$axios({
  856. method: 'post',
  857. url: url,
  858. headers: {
  859. Authorization: 'Bearer ' + that.token
  860. },
  861. data: {
  862. "portType": 1,
  863. "diId": this.DiIdSelect ? this.DiIdSelect : this.DiId,
  864. "cTable": 81 //商邀
  865. }
  866. }).then(function (res) {
  867. if (res.data.code == 200) {
  868. //汇率
  869. console.log("汇率--", res.data.data);
  870. that.rateList = res.data.data.teamRates;
  871. console.log(that.rateList[0].currencyId)
  872. // that.InvitationOfficialActivities.inviteCurrency=that.rateList[0].currencyId;
  873. // that.InvitationOfficialActivities.eventsCurrency=that.rateList[0].currencyId;
  874. // that.InvitationOfficialActivities.translateCurrency=that.rateList[0].currencyId;
  875. // that.InvitationOfficialActivities.sendCurrency=that.rateList[0].currencyId;
  876. // that.InvitationOfficialActivities.paymentCurrency=that.rateList[0].currencyId;
  877. }
  878. })
  879. },
  880. back() {
  881. this.$router.push({
  882. path: "/home/InvitationOfficialActivities",
  883. query: {
  884. DiId: this.DiIdSelect ? this.DiIdSelect : this.DiId,
  885. }
  886. })
  887. },
  888. },
  889. mounted() {
  890. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  891. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
  892. this.InvitationOfficialActivityInitBasicData();
  893. this.AirTicketResSelect();
  894. this.id = this.$route.query.id
  895. this.DiId = this.$route.query.DiId
  896. this.QueryRate();
  897. }
  898. }
  899. </script>
  900. <style>
  901. .car_add .communal-title {
  902. display: flex;
  903. font-size: 17px;
  904. font-weight: 600;
  905. color: #555;
  906. margin-bottom: 20px;
  907. justify-content: space-between;
  908. align-items: center;
  909. }
  910. .appraise-box {
  911. display: flex;
  912. flex-wrap: wrap;
  913. justify-content: space-between;
  914. margin: 50px 0;
  915. }
  916. .appraise-box>div {
  917. width: 30%;
  918. }
  919. .communal-box {
  920. display: flex;
  921. }
  922. .communal-box>button {
  923. margin-left: 10px;
  924. padding: 8px 20px;
  925. }
  926. .car_add {
  927. background-color: #fff;
  928. padding: 20px;
  929. box-shadow: 0 0 5px #0005;
  930. border-radius: 10px;
  931. min-height: 810px;
  932. }
  933. .ExpressPirce .el-input input {
  934. text-align: left;
  935. }
  936. .car_add .el-date-editor.el-input,.car_add .el-input-number,.car_add .el-select{
  937. width: 100%;
  938. }
  939. @media screen and (max-width: 1700px) {
  940. .appraise-box>div {
  941. width: 48%;
  942. }
  943. .appraise-box>div el-form-item__content {
  944. width: 260px !important;
  945. }
  946. }
  947. </style>