ProjectCostHuijiForm.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. <template>
  2. <a-spin :spinning="confirmLoading">
  3. <j-form-container :disabled="formDisabled">
  4. <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
  5. <a-row>
  6. <a-col :span="24">
  7. <a-form-model-item label="任务号/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskno">
  8. <a-input v-model="model.taskno" placeholder="请输入任务号/来自科研任务" ></a-input>
  9. </a-form-model-item>
  10. </a-col>
  11. <a-col :span="24">
  12. <a-form-model-item label="任务名称/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskname">
  13. <a-input v-model="model.taskname" placeholder="请输入任务名称/来自科研任务" ></a-input>
  14. </a-form-model-item>
  15. </a-col>
  16. <a-col :span="24">
  17. <a-form-model-item label="型号/来自科研报工" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="xhname">
  18. <a-input v-model="model.xhname" placeholder="请输入型号/来自科研报工" ></a-input>
  19. </a-form-model-item>
  20. </a-col>
  21. <a-col :span="24">
  22. <a-form-model-item label="计划完成时间(进度要求)来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="jhwcsj">
  23. <j-date placeholder="请选择计划完成时间(进度要求)来自科研任务" v-model="model.jhwcsj" style="width: 100%" />
  24. </a-form-model-item>
  25. </a-col>
  26. <a-col :span="24">
  27. <a-form-model-item label="阶段/来自科研报工" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="yzjdname">
  28. <a-input v-model="model.yzjdname" placeholder="请输入阶段/来自科研报工" ></a-input>
  29. </a-form-model-item>
  30. </a-col>
  31. <a-col :span="24">
  32. <a-form-model-item label="项目进度/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processpercent">
  33. <a-input v-model="model.processpercent" placeholder="请输入项目进度/来自科研任务" ></a-input>
  34. </a-form-model-item>
  35. </a-col>
  36. <a-col :span="24">
  37. <a-form-model-item label="成本进度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="costPercent">
  38. <a-input v-model="model.costPercent" placeholder="请输入成本进度" ></a-input>
  39. </a-form-model-item>
  40. </a-col>
  41. <a-col :span="24">
  42. <a-form-model-item label="研制数量/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="yzsl">
  43. <a-input-number v-model="model.yzsl" placeholder="请输入研制数量/来自科研任务" style="width: 100%" />
  44. </a-form-model-item>
  45. </a-col>
  46. <a-col :span="24">
  47. <a-form-model-item label="单台收入/(合同额or预估价)/研制数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="oneIncome">
  48. <a-input-number v-model="model.oneIncome" placeholder="请输入单台收入/(合同额or预估价)/研制数量" style="width: 100%" />
  49. </a-form-model-item>
  50. </a-col>
  51. <a-col :span="24">
  52. <a-form-model-item label="单台成本/ 总成本额/研制数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="oneCost">
  53. <a-input-number v-model="model.oneCost" placeholder="请输入单台成本/ 总成本额/研制数量" style="width: 100%" />
  54. </a-form-model-item>
  55. </a-col>
  56. <a-col :span="24">
  57. <a-form-model-item label="单台利润/ 利润额/研制数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="oneProfit">
  58. <a-input-number v-model="model.oneProfit" placeholder="请输入单台利润/ 利润额/研制数量" style="width: 100%" />
  59. </a-form-model-item>
  60. </a-col>
  61. <a-col :span="24">
  62. <a-form-model-item label="利润额/(合同额or预估价)-总成本额" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lre">
  63. <a-input-number v-model="model.lre" placeholder="请输入利润额/(合同额or预估价)-总成本额" style="width: 100%" />
  64. </a-form-model-item>
  65. </a-col>
  66. <a-col :span="24">
  67. <a-form-model-item label="利润率/ 利润额/(合同额or预估价)*100%" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lrl">
  68. <a-input-number v-model="model.lrl" placeholder="请输入利润率/ 利润额/(合同额or预估价)*100%" style="width: 100%" />
  69. </a-form-model-item>
  70. </a-col>
  71. <a-col :span="24">
  72. <a-form-model-item label="预估价/来自财务预算" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="estimationcoat">
  73. <a-input-number v-model="model.estimationcoat" placeholder="请输入预估价/来自财务预算" style="width: 100%" />
  74. </a-form-model-item>
  75. </a-col>
  76. <a-col :span="24">
  77. <a-form-model-item label="合同额/来自收款合同的合同分配额 " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="contractfpe">
  78. <a-input-number v-model="model.contractfpe" placeholder="请输入合同额/来自收款合同的合同分配额 " style="width: 100%" />
  79. </a-form-model-item>
  80. </a-col>
  81. <a-col :span="24">
  82. <a-form-model-item label="已收款/ 来自合同收款详细的任务收款额" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskmoney">
  83. <a-input-number v-model="model.taskmoney" placeholder="请输入已收款/ 来自合同收款详细的任务收款额" style="width: 100%" />
  84. </a-form-model-item>
  85. </a-col>
  86. <a-col :span="24">
  87. <a-form-model-item label="总成本/ 直接成本+间接费用/直接成本=材料费(出库)+外协费+专用费+事务费/间接费用=工资费+管理费+燃动费+固资费" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zcb">
  88. <a-input-number v-model="model.zcb" placeholder="请输入总成本/ 直接成本+间接费用/直接成本=材料费(出库)+外协费+专用费+事务费/间接费用=工资费+管理费+燃动费+固资费" style="width: 100%" />
  89. </a-form-model-item>
  90. </a-col>
  91. <a-col :span="24">
  92. <a-form-model-item label="材料费/物资出库单明细 实发主数量*采购单价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="clf">
  93. <a-input-number v-model="model.clf" placeholder="请输入材料费/物资出库单明细 实发主数量*采购单价" style="width: 100%" />
  94. </a-form-model-item>
  95. </a-col>
  96. <a-col :span="24">
  97. <a-form-model-item label="专用费" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zyf">
  98. <a-input-number v-model="model.zyf" placeholder="请输入专用费" style="width: 100%" />
  99. </a-form-model-item>
  100. </a-col>
  101. <a-col :span="24">
  102. <a-form-model-item label="事务费" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="swf">
  103. <a-input-number v-model="model.swf" placeholder="请输入事务费" style="width: 100%" />
  104. </a-form-model-item>
  105. </a-col>
  106. <a-col :span="24">
  107. <a-form-model-item label="外协费" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="wxf">
  108. <a-input-number v-model="model.wxf" placeholder="请输入外协费" style="width: 100%" />
  109. </a-form-model-item>
  110. </a-col>
  111. <a-col :span="24">
  112. <a-form-model-item label="燃料动力费/(材料费+外协费+事务费+专用费)×1.5%" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rldlf">
  113. <a-input-number v-model="model.rldlf" placeholder="请输入燃料动力费/(材料费+外协费+事务费+专用费)×1.5%" style="width: 100%" />
  114. </a-form-model-item>
  115. </a-col>
  116. <a-col :span="24">
  117. <a-form-model-item label="固定资产折旧/(材料费+外协费+事务费+专用费)×2.5%" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gdzczj">
  118. <a-input-number v-model="model.gdzczj" placeholder="请输入固定资产折旧/(材料费+外协费+事务费+专用费)×2.5%" style="width: 100%" />
  119. </a-form-model-item>
  120. </a-col>
  121. <a-col :span="24">
  122. <a-form-model-item label="工资及劳务费/(材料费+外协费+事务费+专用费)×17%" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gzjlwf">
  123. <a-input-number v-model="model.gzjlwf" placeholder="请输入工资及劳务费/(材料费+外协费+事务费+专用费)×17%" style="width: 100%" />
  124. </a-form-model-item>
  125. </a-col>
  126. <a-col :span="24">
  127. <a-form-model-item label="管理费/(材料费+外协费+事务费+专用费)×5%" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="glf">
  128. <a-input-number v-model="model.glf" placeholder="请输入管理费/(材料费+外协费+事务费+专用费)×5%" style="width: 100%" />
  129. </a-form-model-item>
  130. </a-col>
  131. <a-col :span="24">
  132. <a-form-model-item label="装机成本/ mes装机信息卡的采购单价*数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zjcb">
  133. <a-input-number v-model="model.zjcb" placeholder="请输入装机成本/ mes装机信息卡的采购单价*数量" style="width: 100%" />
  134. </a-form-model-item>
  135. </a-col>
  136. <a-col :span="24">
  137. <a-form-model-item label="内部试验" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lbsy">
  138. <a-input-number v-model="model.lbsy" placeholder="请输入内部试验" style="width: 100%" />
  139. </a-form-model-item>
  140. </a-col>
  141. <a-col :span="24">
  142. <a-form-model-item label="工时(h)/来自科研报工,每次科研报工累加计时" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workhour">
  143. <a-input-number v-model="model.workhour" placeholder="请输入工时(h)/来自科研报工,每次科研报工累加计时" style="width: 100%" />
  144. </a-form-model-item>
  145. </a-col>
  146. <a-col :span="24">
  147. <a-form-model-item label="责任部门/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zrbm">
  148. <a-input v-model="model.zrbm" placeholder="请输入责任部门/来自科研任务" ></a-input>
  149. </a-form-model-item>
  150. </a-col>
  151. <a-col :span="24">
  152. <a-form-model-item label="下达部门id/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="jycsid">
  153. <a-input-number v-model="model.jycsid" placeholder="请输入下达部门id/来自科研任务" style="width: 100%" />
  154. </a-form-model-item>
  155. </a-col>
  156. <a-col :span="24">
  157. <a-form-model-item label="下达部门/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="jycs">
  158. <a-input v-model="model.jycs" placeholder="请输入下达部门/来自科研任务" ></a-input>
  159. </a-form-model-item>
  160. </a-col>
  161. <a-col :span="24">
  162. <a-form-model-item label="1:横向 2:纵向/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hxzxid">
  163. <a-input-number v-model="model.hxzxid" placeholder="请输入1:横向 2:纵向/来自科研任务" style="width: 100%" />
  164. </a-form-model-item>
  165. </a-col>
  166. <a-col :span="24">
  167. <a-form-model-item label="横向纵向/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hxzxname">
  168. <a-input v-model="model.hxzxname" placeholder="请输入横向纵向/来自科研任务" ></a-input>
  169. </a-form-model-item>
  170. </a-col>
  171. <a-col :span="24">
  172. <a-form-model-item label="任务类型/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="tasktype">
  173. <a-input v-model="model.tasktype" placeholder="请输入任务类型/来自科研任务" ></a-input>
  174. </a-form-model-item>
  175. </a-col>
  176. <a-col :span="24">
  177. <a-form-model-item label="审计审价/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="auditprice">
  178. <a-input v-model="model.auditprice" placeholder="请输入审计审价/来自科研任务" ></a-input>
  179. </a-form-model-item>
  180. </a-col>
  181. <a-col :span="24">
  182. <a-form-model-item label="任务状态/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iflag">
  183. <a-input v-model="model.iflag" placeholder="请输入任务状态/来自科研任务" ></a-input>
  184. </a-form-model-item>
  185. </a-col>
  186. <a-col :span="24">
  187. <a-form-model-item label="提出单位简称/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brief">
  188. <a-input v-model="model.brief" placeholder="请输入提出单位简称/来自科研任务" ></a-input>
  189. </a-form-model-item>
  190. </a-col>
  191. <a-col :span="24">
  192. <a-form-model-item label="父级任务/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reftaskno">
  193. <a-input-number v-model="model.reftaskno" placeholder="请输入父级任务/来自科研任务" style="width: 100%" />
  194. </a-form-model-item>
  195. </a-col>
  196. <a-col :span="24">
  197. <a-form-model-item label="批产任务号/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pccode">
  198. <a-input-number v-model="model.pccode" placeholder="请输入批产任务号/来自科研任务" style="width: 100%" />
  199. </a-form-model-item>
  200. </a-col>
  201. <a-col :span="24">
  202. <a-form-model-item label="备产任务号/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bccode">
  203. <a-input-number v-model="model.bccode" placeholder="请输入备产任务号/来自科研任务" style="width: 100%" />
  204. </a-form-model-item>
  205. </a-col>
  206. <a-col :span="24">
  207. <a-form-model-item label="备料任务号/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="blcode">
  208. <a-input-number v-model="model.blcode" placeholder="请输入备料任务号/来自科研任务" style="width: 100%" />
  209. </a-form-model-item>
  210. </a-col>
  211. <a-col :span="24">
  212. <a-form-model-item label="业务员/来自科研任务" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="businessman">
  213. <a-input v-model="model.businessman" placeholder="请输入业务员/来自科研任务" ></a-input>
  214. </a-form-model-item>
  215. </a-col>
  216. <a-col :span="24">
  217. <a-form-model-item label="设计工时" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sjgs">
  218. <a-input-number v-model="model.sjgs" placeholder="请输入设计工时" style="width: 100%" />
  219. </a-form-model-item>
  220. </a-col>
  221. <a-col :span="24">
  222. <a-form-model-item label="生产工时" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="scgs">
  223. <a-input-number v-model="model.scgs" placeholder="请输入生产工时" style="width: 100%" />
  224. </a-form-model-item>
  225. </a-col>
  226. </a-row>
  227. </a-form-model>
  228. </j-form-container>
  229. </a-spin>
  230. </template>
  231. <script>
  232. import { httpAction, getAction } from '@/api/manage'
  233. import { validateDuplicateValue } from '@/utils/util'
  234. export default {
  235. name: 'ProjectCostHuijiForm',
  236. components: {
  237. },
  238. props: {
  239. //表单禁用
  240. disabled: {
  241. type: Boolean,
  242. default: false,
  243. required: false
  244. }
  245. },
  246. data () {
  247. return {
  248. model:{
  249. },
  250. labelCol: {
  251. xs: { span: 24 },
  252. sm: { span: 5 },
  253. },
  254. wrapperCol: {
  255. xs: { span: 24 },
  256. sm: { span: 16 },
  257. },
  258. confirmLoading: false,
  259. validatorRules: {
  260. xhname: [
  261. { required: true, message: '请输入型号/来自科研报工!'},
  262. ],
  263. yzsl: [
  264. { required: true, message: '请输入研制数量/来自科研任务!'},
  265. ],
  266. wxf: [
  267. { required: true, message: '请输入外协费!'},
  268. ],
  269. tasktype: [
  270. { required: true, message: '请输入任务类型/来自科研任务!'},
  271. ],
  272. },
  273. url: {
  274. add: "/projectCostHuiji/projectCostHuiji/add",
  275. edit: "/projectCostHuiji/projectCostHuiji/edit",
  276. queryById: "/projectCostHuiji/projectCostHuiji/queryById"
  277. }
  278. }
  279. },
  280. computed: {
  281. formDisabled(){
  282. return this.disabled
  283. },
  284. },
  285. created () {
  286. //备份model原始值
  287. this.modelDefault = JSON.parse(JSON.stringify(this.model));
  288. },
  289. methods: {
  290. add () {
  291. this.edit(this.modelDefault);
  292. },
  293. edit (record) {
  294. this.model = Object.assign({}, record);
  295. this.visible = true;
  296. },
  297. submitForm () {
  298. const that = this;
  299. // 触发表单验证
  300. this.$refs.form.validate(valid => {
  301. if (valid) {
  302. that.confirmLoading = true;
  303. let httpurl = '';
  304. let method = '';
  305. if(!this.model.id){
  306. httpurl+=this.url.add;
  307. method = 'post';
  308. }else{
  309. httpurl+=this.url.edit;
  310. method = 'put';
  311. }
  312. httpAction(httpurl,this.model,method).then((res)=>{
  313. if(res.success){
  314. that.$message.success(res.message);
  315. that.$emit('ok');
  316. }else{
  317. that.$message.warning(res.message);
  318. }
  319. }).finally(() => {
  320. that.confirmLoading = false;
  321. })
  322. }
  323. })
  324. },
  325. }
  326. }
  327. </script>