ConferenceCost.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. <template>
  2. <div class="conferencecost-all">
  3. <div class="conferencecost-header">
  4. <div class="conferencecost-header-left">
  5. <div class="conferencecost-header-left-item">
  6. <label style="width:40px;">会务: </label>
  7. <el-select @change="conferenceidchange" size="small" v-model="conferenceid" clearable placeholder="请选择">
  8. <el-option v-for="item in conferenceidarr" :key="item.id" :label="item.teamName"
  9. :value="item.id">
  10. </el-option>
  11. </el-select>
  12. </div>
  13. <div class="conferencecost-header-left-item">
  14. <label style="width:80px;">服务地区: </label>
  15. <el-input size="small" placeholder="请输入内容" v-model="input" clearable>
  16. </el-input>
  17. </div>
  18. </div>
  19. <div class="conferencecost-header-right">
  20. <el-select size="small" v-model="conferenceid" clearable placeholder="请选择">
  21. <el-option v-for="item in conferenceidarr" :key="item.value" :label="item.label"
  22. :value="item.value">
  23. </el-option>
  24. </el-select>
  25. <el-button size="small" type="primary">生成表格</el-button>
  26. <el-button size="small" type="primary">保存</el-button>
  27. <el-button size="small" type="primary">审核通过</el-button>
  28. </div>
  29. </div>
  30. <div class="conferencecost-content">
  31. <el-table border ref="multipleTable" :data="tableDatas" tooltip-effect="dark" style="width: 100%"
  32. @selection-change="handleSelectionChange">
  33. <el-table-column type="selection" width="55">
  34. </el-table-column>
  35. <el-table-column label="序号" prop="index" width="55">
  36. </el-table-column>
  37. <el-table-column prop="name" label="类型" width="120">
  38. <template slot-scope="scope">
  39. <el-select size="small" v-model="scope.row.priceType" clearable placeholder="请选择">
  40. <el-option v-for="item in options" :key="item.id" :label="item.text"
  41. :value="item.id">
  42. </el-option>
  43. </el-select>
  44. </template>
  45. </el-table-column>
  46. <el-table-column prop="name" label="单项内容" width="120">
  47. <template slot-scope="scope">
  48. <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="scope.row.priceName"></el-input>
  49. </template>
  50. </el-table-column>
  51. <el-table-column prop="name" label="成本单价" width="120">
  52. <template slot-scope="scope">
  53. <el-input-number :precision="2" size="mini" :controls="false" v-model="scope.row.costPrice"></el-input-number>
  54. </template>
  55. </el-table-column>
  56. <el-table-column prop="name" label="币种" width="80">
  57. <template slot-scope="scope">
  58. <el-select size="small" v-model="scope.row.currency" clearable placeholder="请选择">
  59. <el-option v-for="item in options" :key="item.value" :label="item.label"
  60. :value="item.value">
  61. </el-option>
  62. </el-select>
  63. </template>
  64. </el-table-column>
  65. <el-table-column prop="name" label="数量" width="100">
  66. <template slot-scope="scope">
  67. <el-input-number :precision="2" size="mini" :controls="false" v-model="scope.row.count"></el-input-number>
  68. </template>
  69. </el-table-column>
  70. <el-table-column prop="name" label="单位" width="100">
  71. <template slot-scope="scope">
  72. <el-input size="mini" v-model="scope.row.unit" placeholder="请输入内容"></el-input>
  73. </template>
  74. </el-table-column>
  75. <el-table-column prop="name" label="系数" width="100">
  76. <template slot-scope="scope">
  77. <el-input-number :precision="2" size="mini" :controls="false" v-model="scope.row.coefficient"></el-input-number>
  78. </template>
  79. </el-table-column>
  80. <el-table-column prop="name" label="单项报价金额" width="100">
  81. <template slot-scope="scope">
  82. <el-input-number :precision="2" size="mini" :controls="false" v-model="scope.row.baoJiaPrice"></el-input-number>
  83. </template>
  84. </el-table-column>
  85. <el-table-column prop="name" label="附加值">
  86. <template slot-scope="scope">
  87. <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="scope.row.addedValue"></el-input>
  88. </template>
  89. </el-table-column>
  90. <el-table-column prop="name" label="明细">
  91. <template slot-scope="scope">
  92. <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="scope.row.details"></el-input>
  93. </template>
  94. </el-table-column>
  95. <el-table-column prop="name" label="备注">
  96. <template slot-scope="scope">
  97. <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="scope.row.remark"></el-input>
  98. </template>
  99. </el-table-column>
  100. <el-table-column prop="reviewStatus" label="审核状态" width="100">
  101. </el-table-column>
  102. <el-table-column label="操作" width="100px">
  103. <!-- <template slot-scope="scope"> -->
  104. <div class="conferencecost-content-btn">
  105. <el-button size="mini" type="danger">移 除</el-button>
  106. <el-button size="mini" type="primary">通 过</el-button>
  107. <el-button size="mini" type="danger">撤 销</el-button>
  108. </div>
  109. <!-- </template> -->
  110. </el-table-column>
  111. </el-table>
  112. <div class="Addline">
  113. <el-button size="small" @click="addlineclick" type="primary">添加一行</el-button>
  114. </div>
  115. </div>
  116. </div>
  117. </template>
  118. <script>
  119. export default {
  120. data() {
  121. return {
  122. tableDatas: [
  123. // {
  124. // priceType:'',//费用类型
  125. // priceName:'',//费用名称
  126. // costPrice:0,//成本费用
  127. // currency:'',//币种
  128. // rate:0,//当时汇率
  129. // count:0,//数量
  130. // unit:'',//单位
  131. // coefficient:0,//系数
  132. // baoJiaPrice:0,//报价金额
  133. // addedValue:'',//附加值
  134. // details:'',//明细
  135. // reviewStatus:'',//审核状态
  136. // diid:'',//团组Id
  137. // id:0,//主表Id
  138. // remark:'',//备注
  139. // }
  140. ],
  141. conferenceid: 0,
  142. conferenceidarr: [],
  143. input: '',
  144. options: [],
  145. token:'',
  146. userId: '',
  147. restriction:true,
  148. }
  149. },
  150. updated() {
  151. console.log(1);
  152. if (this.restriction) {
  153. this.$emit('transfer', true)
  154. this.restriction=false;
  155. }
  156. },
  157. destroyed() {
  158. this.$emit('transfer', false)
  159. },
  160. methods: {
  161. handleSelectionChange(val) {
  162. this.multipleSelection = val;
  163. },
  164. //获取基础数据
  165. ConferenceAffairsInIt(){
  166. var url = "/api/Groups/ConferenceAffairsInIt"
  167. var that = this
  168. this.$axios({
  169. method: 'post',
  170. url: url,
  171. headers: {
  172. Authorization: 'Bearer ' + that.token
  173. },
  174. data: {
  175. userId: that.userId,
  176. groupId: that.conferenceid,
  177. }
  178. }).then(function (res) {
  179. that.conferenceidarr = res.data.data.groupList;
  180. that.conferenceid=that.conferenceidarr[0].id;
  181. that.options = res.data.data.typeData;
  182. that.ConferenceAffairsInIts();
  183. })
  184. },
  185. //获取数据
  186. ConferenceAffairsInIts(){
  187. var url = "/api/Groups/ConferenceAffairsInIt"
  188. var that = this
  189. this.$axios({
  190. method: 'post',
  191. url: url,
  192. headers: {
  193. Authorization: 'Bearer ' + that.token
  194. },
  195. data: {
  196. userId: 21,
  197. groupId: that.conferenceid,
  198. }
  199. }).then(function (res) {
  200. })
  201. },
  202. //会务切换
  203. conferenceidchange(val) {
  204. this.ConferenceAffairsInIts();
  205. },
  206. //添加一行
  207. addlineclick(){
  208. this.tableDatas.push({
  209. index: this.tableDatas.length + 1,
  210. priceType:'',//费用类型
  211. priceName:'',//费用名称
  212. costPrice:0,//成本费用
  213. currency:'',//币种
  214. rate:0,//当时汇率
  215. count:0,//数量
  216. unit:'',//单位
  217. coefficient:0,//系数
  218. baoJiaPrice:0,//报价金额
  219. addedValue:'',//附加值
  220. details:'',//明细
  221. reviewStatus:'',//审核状态
  222. diid:this.conferenceid,//团组Id
  223. id:0,//主表Id
  224. remark:'',//备注
  225. });
  226. }
  227. },
  228. mounted(){
  229. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  230. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  231. this.ConferenceAffairsInIt();
  232. }
  233. }
  234. </script>
  235. <style>
  236. .conferencecost-all {
  237. background-color: #fff;
  238. padding: 10px;
  239. box-shadow: 0 0 5px #0005;
  240. border-radius: 10px;
  241. min-height: 830px;
  242. }
  243. .conferencecost-header{
  244. display: flex;
  245. justify-content: space-between;
  246. align-items: center;
  247. }
  248. .conferencecost-header-left {
  249. display: flex;
  250. flex-wrap: wrap;
  251. }
  252. .conferencecost-header-left-item {
  253. margin-right: 15px;
  254. margin-bottom: 15px;
  255. }
  256. .conferencecost-header-left-item {
  257. display: flex;
  258. align-items: center;
  259. }
  260. .conferencecost-content .el-input-number--mini{
  261. width: 100%;
  262. }
  263. .conferencecost-content-btn{
  264. display: flex;
  265. justify-content: center;
  266. flex-wrap: wrap;
  267. }
  268. .conferencecost-content-btn .el-button+.el-button{
  269. margin-left: 0px;
  270. margin-top: 5px;
  271. }
  272. .Addline{
  273. margin-top: 10px;
  274. text-align: center;
  275. }
  276. .conferencecost-header-right>div,button{
  277. margin-bottom: 15px;
  278. }
  279. </style>