invoice-request.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <!-- -->
  2. <template>
  3. <div>
  4. <el-form ref="formRef" :model="otherInfo" label-position="left" label-width="auto" disabled>
  5. <div class="hc-form-item">
  6. <el-form-item label="申请时间:" prop="invoiceDate">
  7. <el-date-picker type="date" class="block" v-model="otherInfo.invoiceDate" format="YYYY-MM-DD"
  8. value-format="YYYY-MM-DD" />
  9. </el-form-item>
  10. <el-form-item label="发票抬头:">
  11. <el-input v-model="otherInfo.key2" disabled />
  12. </el-form-item>
  13. </div>
  14. <div class="hc-form-item">
  15. <el-form-item label="开票事由:" prop="invoiceDesc">
  16. <el-input type="textarea" v-model="otherInfo.invoiceDesc" :autosize="{ minRows: 3, maxRows: 5 }" />
  17. </el-form-item>
  18. <el-form-item label="纳税人识别号:">
  19. <el-input v-model="otherInfo.key2" disabled />
  20. </el-form-item>
  21. </div>
  22. <div class="hc-form-item">
  23. <el-form-item label="开票人:" prop="invoiceUserId">
  24. <el-select block v-model="otherInfo.invoiceUserId">
  25. <el-option v-for="item in userList" :label="item.name" :value="item.id"/>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item label="开户银行:">
  29. <el-input v-model="otherInfo.key2" disabled />
  30. </el-form-item>
  31. </div>
  32. <div class="hc-form-item">
  33. <el-form-item label="发票类型:" prop="invoiceType">
  34. <el-select block v-model="otherInfo.invoiceType">
  35. <el-option v-for="item in invoiceTypeData" :label="item.dictName" :value="item.dictValue" />
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item label="银行账户:">
  39. <el-input v-model="otherInfo.key2" disabled />
  40. </el-form-item>
  41. </div>
  42. <div class="hc-form-item">
  43. <el-form-item label="关联项目:" prop="projectId">
  44. <el-select block v-model="otherInfo.projectId">
  45. <el-option v-for="item in projectType" :label="item.projectName" :value="item.projectId" />
  46. </el-select>
  47. </el-form-item>
  48. <el-form-item label="收件人:">
  49. <el-input v-model="otherInfo.key2" disabled />
  50. </el-form-item>
  51. </div>
  52. <div class="hc-form-item">
  53. <el-form-item label="开票金额:" prop="invoiceMoney">
  54. <el-input v-model="otherInfo.invoiceMoney">
  55. <template #append>元</template>
  56. </el-input>
  57. </el-form-item>
  58. <el-form-item label="联系电话:">
  59. <el-input v-model="otherInfo.key2" disabled />
  60. </el-form-item>
  61. </div>
  62. <div class="hc-form-item">
  63. <el-form-item label="开票内容:" prop="invoiceContentType">
  64. <el-select block v-model="otherInfo.invoiceContentType">
  65. <el-option v-for="item in invoiceContentList" :label="item" :value="item"/>
  66. </el-select>
  67. </el-form-item>
  68. <el-form-item label="邮寄地址:">
  69. <el-input v-model="otherInfo.key2" disabled />
  70. </el-form-item>
  71. </div>
  72. </el-form>
  73. </div>
  74. </template>
  75. <script setup>
  76. import { ref, watch,onActivated } from 'vue'
  77. import {getProjectList,getuserList,getDictInfo} from "~api/other";
  78. import {getArrValue} from "js-fast-way";
  79. import {useAppStore} from "~src/store";
  80. import mainApi from "~api/expense/invoice";
  81. const useAppState = useAppStore();
  82. onActivated(()=>{
  83. getUserDict()
  84. getInvoiceContentList()
  85. getInvoiceType()
  86. getProjectData()
  87. })
  88. //参数
  89. const props = defineProps({
  90. otherInfo: {
  91. type: Object,
  92. default: {}
  93. }
  94. })
  95. const invoiceTypeData=ref([])
  96. const projectType=ref([])
  97. //监听
  98. watch(() => [
  99. props.otherInfo,
  100. ], ([otherInfo]) => {
  101. console.log(otherInfo, 'otherInfo');
  102. })
  103. //获取所有员工
  104. const userList=ref([])
  105. const getUserDict=async()=>{
  106. const {error, code, data} = await getuserList({tenantId:useAppState.tenantId})
  107. if (!error && code === 200) {
  108. userList.value = getArrValue(data)
  109. } else {
  110. userList.value = []
  111. }
  112. }
  113. //获取开票内容
  114. const invoiceContentList=ref([])
  115. const getInvoiceContentList=async()=>{
  116. const {error, code, data} = await mainApi.getInvoiceContentList()
  117. if (!error && code === 200) {
  118. invoiceContentList.value = getArrValue(data)
  119. } else {
  120. invoiceContentList.value = []
  121. }
  122. }
  123. //发票类型字典
  124. const getInvoiceType = async () => {
  125. const {error, code, data} = await getDictInfo('invoice_type')
  126. //判断状态
  127. if (!error && code === 200) {
  128. invoiceTypeData.value = getArrValue(data)
  129. } else {
  130. invoiceTypeData.value = []
  131. }
  132. }
  133. //项目类型
  134. const getProjectData = async () => {
  135. const {error, code, data} = await getProjectList()
  136. //判断状态
  137. if (!error && code === 200) {
  138. projectType.value = getArrValue(data)
  139. } else {
  140. projectType.value = []
  141. }
  142. }
  143. </script>
  144. <style lang='scss' scoped></style>