detailDialog.vue 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. <template>
  2. <ele-modal
  3. custom-class="ele-dialog-form long-dialog-form"
  4. :centered="true"
  5. :visible.sync="detailDialogFlag"
  6. :title="title"
  7. :close-on-click-modal="false"
  8. append-to-body
  9. width="60%"
  10. :before-close="cancel"
  11. :maxable="true"
  12. :resizable="true"
  13. >
  14. <div class="switch_left">
  15. <ul>
  16. <li
  17. v-for="item in tabOptions"
  18. :key="item.key"
  19. :class="{ active: activeComp == item.key }"
  20. @click="activeComp = item.key"
  21. >
  22. {{ item.name }}
  23. </li>
  24. </ul>
  25. </div>
  26. <div v-if="activeComp === 'main'">
  27. <el-form ref="form" :model="form" class="el-form-box" label-width="140px">
  28. <headerTitle title="基本信息"></headerTitle>
  29. <el-row :gutter="12">
  30. <el-col :span="8">
  31. <el-form-item label="发票类型" prop="type">
  32. <el-select v-model="form.type" disabled style="width: 100%">
  33. <el-option label="开票" :value="1"></el-option>
  34. <el-option label="收票" :value="2"></el-option>
  35. </el-select>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="8">
  39. <el-form-item label="来源类型" prop="sourceType">
  40. <el-select
  41. v-model="form.sourceType"
  42. :disabled="true"
  43. style="width: 100%"
  44. >
  45. <el-option label="对账单" :value="1"></el-option>
  46. <el-option label="合同" :value="2"></el-option>
  47. <el-option label="订单" :value="3"></el-option>
  48. <el-option label="应收" :value="5"></el-option>
  49. <el-option label="应付" :value="4"></el-option>
  50. </el-select>
  51. </el-form-item>
  52. </el-col>
  53. <el-col :span="8" v-if="form.sourceType == 1">
  54. <el-form-item label="对账单" prop="sourceCode">
  55. <el-input v-model="form.sourceCode" :disabled="true"></el-input>
  56. </el-form-item>
  57. </el-col>
  58. <el-col :span="8" v-if="form.sourceType == 2">
  59. <el-form-item label="合同" prop="sourceCode">
  60. <el-input v-model="form.sourceCode" :disabled="true"></el-input>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="8" v-if="form.sourceType == 3">
  64. <el-form-item label="订单" prop="sourceCode">
  65. <el-input v-model="form.sourceCode" :disabled="true"></el-input>
  66. </el-form-item>
  67. </el-col>
  68. <el-col :span="8" v-if="form.sourceType == 5">
  69. <el-form-item label="应收" prop="sourceCode">
  70. <el-input v-model="form.sourceCode" :disabled="true"></el-input>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="8" v-if="form.sourceType == 4">
  74. <el-form-item label="应付" prop="sourceCode">
  75. <el-input v-model="form.sourceCode" :disabled="true"></el-input>
  76. </el-form-item>
  77. </el-col>
  78. <el-col :span="8">
  79. <el-form-item label="金额" prop="amount">
  80. <el-input-number
  81. disabled
  82. v-model="form.amount"
  83. :precision="2"
  84. :controls="false"
  85. style="width: 100%"
  86. :min="0"
  87. ></el-input-number>
  88. </el-form-item>
  89. </el-col>
  90. <el-col :span="8">
  91. <el-form-item label="申请部门" prop="applyDeptId">
  92. <el-input v-model="form.applyDeptName" disabled></el-input>
  93. </el-form-item>
  94. </el-col>
  95. <el-col :span="8">
  96. <el-form-item label="申请人" prop="applyUserId">
  97. <el-input v-model="form.applyUserName" disabled></el-input>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="8">
  101. <el-form-item label="预计开票日期">
  102. <el-date-picker
  103. style="width: 100%"
  104. v-model="form.expectInvoiceDate"
  105. type="date"
  106. disabled
  107. value-format="yyyy-MM-dd"
  108. >
  109. </el-date-picker>
  110. </el-form-item>
  111. </el-col>
  112. <el-col :span="8">
  113. <el-form-item label="会计科目" prop="accountingSubjectName">
  114. <el-input
  115. v-model="form.accountingSubjectName"
  116. disabled
  117. ></el-input>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="8">
  121. <el-form-item label="发票类型" prop="category">
  122. <el-radio disabled v-model="form.category" :label="2"
  123. >增值税普通发票</el-radio
  124. >
  125. <el-radio disabled v-model="form.category" :label="1"
  126. >增值税专用发票</el-radio
  127. >
  128. </el-form-item>
  129. </el-col>
  130. <el-col :span="8">
  131. <el-form-item prop="files" label="发票附件">
  132. <fileMain v-model="form.files" type="view"></fileMain>
  133. </el-form-item>
  134. </el-col>
  135. </el-row>
  136. <headerTitle title="发票信息"></headerTitle>
  137. <el-row :gutter="12">
  138. <el-col :span="12">
  139. <el-form-item label="购买方名称" prop="companyName">
  140. <el-input disabled v-model="form.companyName"></el-input>
  141. </el-form-item>
  142. <el-form-item
  143. label="统一社会信用代码"
  144. class="form_item_label"
  145. prop="companyUsc"
  146. >
  147. <el-input disabled v-model="form.companyUsc"></el-input>
  148. </el-form-item>
  149. <el-form-item label="开户银行" prop="companyBankBranchNo">
  150. <el-input disabled v-model="form.companyBankBranchNo"></el-input>
  151. </el-form-item>
  152. <el-form-item label="银行账户" prop="companyBankAccount">
  153. <el-input disabled v-model="form.companyBankAccount"></el-input>
  154. </el-form-item>
  155. <el-form-item label="地址" prop="companyAddress">
  156. <el-input disabled v-model="form.companyAddress"></el-input>
  157. </el-form-item>
  158. <el-form-item label="电话号码" prop="companyTel">
  159. <el-input disabled v-model="form.companyTel"></el-input>
  160. </el-form-item>
  161. </el-col>
  162. <el-col :span="12">
  163. <el-form-item label="销售方名称" prop="receiverName">
  164. <el-input disabled v-model="form.receiverName"></el-input>
  165. </el-form-item>
  166. <el-form-item
  167. label="统一社会信用代码"
  168. prop="salesCompanyUsc"
  169. class="form_item_label"
  170. >
  171. <el-input v-model="form.salesCompanyUsc" disabled></el-input>
  172. </el-form-item>
  173. <el-form-item label="开户银行" prop="salesCompanyBankBranchNo">
  174. <el-input v-model="form.salesCompanyBankBranchNo" disabled></el-input>
  175. </el-form-item>
  176. <el-form-item label="银行账户" prop="salesCompanyBankAccount">
  177. <el-input v-model="form.salesCompanyBankAccount" disabled></el-input>
  178. </el-form-item>
  179. <el-form-item label="地址" prop="receiverAddress">
  180. <el-input v-model="form.receiverAddress" disabled></el-input>
  181. </el-form-item>
  182. <el-form-item label="电话号码" prop="receiverTel">
  183. <el-input v-model="form.receiverTel" disabled></el-input>
  184. </el-form-item>
  185. </el-col>
  186. </el-row>
  187. </el-form>
  188. <headerTitle title="关联信息"></headerTitle>
  189. <table-info
  190. v-if="dialogType != 'add' && form.detailList.length"
  191. dialogType="view"
  192. :form="form"
  193. :invoiceAmount="form.invoiceAmount"
  194. ref="table"
  195. ></table-info>
  196. </div>
  197. <bpmDetail
  198. v-if="activeComp === 'bpm' && form.processInstanceId"
  199. :id="form.processInstanceId"
  200. ></bpmDetail>
  201. <div slot="footer" class="footer">
  202. <el-button @click="cancel">返回</el-button>
  203. </div>
  204. </ele-modal>
  205. </template>
  206. <script>
  207. import { getFile } from '@/api/system/file';
  208. import dictMixins from '@/mixins/dictMixins';
  209. import bpmDetail from '@/views/bpm/processInstance/detail.vue';
  210. import personSelect from '@/components/CommomSelect/person-select.vue';
  211. import tableInfo from '@/views/financialManage/invoiceManage/components/tableInfo.vue';
  212. import { invoiceApplyInfoAPI } from '@/api/financialManage/invoiceManage';
  213. // import fileMain from '@/components/addDoc/index.vue';
  214. export default {
  215. mixins: [dictMixins],
  216. props: ['detailDialogFlag'],
  217. components: {
  218. tableInfo,
  219. personSelect,
  220. bpmDetail
  221. // fileMain
  222. },
  223. data() {
  224. return {
  225. fullscreen: false,
  226. activeComp: 'main',
  227. tabOptions: [
  228. { key: 'main', name: '申请详情' },
  229. { key: 'bpm', name: '流程详情' }
  230. ],
  231. title: '详情',
  232. dialogType: '',
  233. form: {
  234. files: []
  235. }
  236. };
  237. },
  238. methods: {
  239. //初始化
  240. async init(row = {}, type) {
  241. this.title = '详情';
  242. this.dialogType = type;
  243. await this.getInfo(row.id);
  244. },
  245. //获取详情
  246. async getInfo(id) {
  247. this.form = await invoiceApplyInfoAPI(id);
  248. },
  249. downloadFile(file) {
  250. getFile({ objectName: file.storePath }, file.name);
  251. },
  252. cancel() {
  253. this.$emit('update:detailDialogFlag', false);
  254. }
  255. }
  256. };
  257. </script>
  258. <style scoped lang="scss">
  259. .headbox {
  260. display: flex;
  261. justify-content: flex-start;
  262. align-items: center;
  263. .amount {
  264. font-size: 14px;
  265. font-weight: bold;
  266. margin-right: 20px;
  267. }
  268. }
  269. </style>