|
|
@@ -212,6 +212,39 @@
|
|
|
<van-button type="primary" size="small" block @click="openTripEditDialog(scope, 'add', scope.model.blank_business_trip?scope.model.blank_business_trip.length:0)" style="margin-bottom:10px">+ 添加行程</van-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
+ <template v-slot:blank_purchase_requisition="scope">
|
|
|
+ <div style="width: 100%;">
|
|
|
+ <view v-for="(item, index) in scope.model.blank_purchase_requisition" :key="index" class="seal-card">
|
|
|
+ <div class="seal-card-header">
|
|
|
+ <span class="seal-card-index">{{ index + 1 }}.</span>
|
|
|
+ <span class="seal-card-type">{{ item.materialName || '未填写物料' }} ×{{ item.quantity||0 }}{{ item.unit||'' }}</span>
|
|
|
+ <div class="seal-card-actions">
|
|
|
+ <van-button size="mini" type="primary" plain @click="openPrEditDialog(scope, 'edit', index)">编辑</van-button>
|
|
|
+ <van-button size="mini" type="danger" plain @click="delNewRow('blank_purchase_requisition', index)">删除</van-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="seal-card-body">
|
|
|
+ <div class="seal-card-row">
|
|
|
+ <span class="seal-card-label">规格</span>
|
|
|
+ <span class="seal-card-value">{{ item.specification || '-' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="seal-card-row">
|
|
|
+ <span class="seal-card-label">用途</span>
|
|
|
+ <span class="seal-card-value">{{ item.purpose || '-' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="seal-card-row">
|
|
|
+ <span class="seal-card-label">交付</span>
|
|
|
+ <span class="seal-card-value">{{ item.expectedDeliveryDate || '-' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="seal-card-row" v-if="item.remark">
|
|
|
+ <span class="seal-card-label">备注</span>
|
|
|
+ <span class="seal-card-value">{{ item.remark }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </view>
|
|
|
+ <van-button type="primary" size="small" block @click="openPrEditDialog(scope, 'add', scope.model.blank_purchase_requisition?scope.model.blank_purchase_requisition.length:0)" style="margin-bottom:10px">+ 添加物料</van-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
|
|
|
</fm-generate-vant-form>
|
|
|
|
|
|
@@ -364,6 +397,24 @@
|
|
|
</div>
|
|
|
</van-popup>
|
|
|
|
|
|
+ <!-- 采购申请编辑弹窗 -->
|
|
|
+ <van-popup v-model:show="prEditVisible" position="bottom" :style="{ height: '70%' }" round>
|
|
|
+ <div style="padding:16px">
|
|
|
+ <h4 style="text-align:center;margin-bottom:12px">{{ prEditTitle }}</h4>
|
|
|
+ <div class="seal-form-row"><span class="seal-form-label">物料名称</span><input class="seal-form-input" v-model="prEditForm.materialName" placeholder="请输入" /></div>
|
|
|
+ <div class="seal-form-row"><span class="seal-form-label">规格型号</span><input class="seal-form-input" v-model="prEditForm.specification" placeholder="请输入" /></div>
|
|
|
+ <div class="seal-form-row"><span class="seal-form-label">单位</span><input class="seal-form-input" v-model="prEditForm.unit" placeholder="个/台/套" /></div>
|
|
|
+ <div class="seal-form-row"><span class="seal-form-label">数量</span><input class="seal-form-input" type="number" v-model="prEditForm.quantity" placeholder="请输入" /></div>
|
|
|
+ <div class="seal-form-row"><span class="seal-form-label">用途</span><input class="seal-form-input" v-model="prEditForm.purpose" placeholder="请输入" /></div>
|
|
|
+ <div class="seal-form-row"><span class="seal-form-label">交付日期</span><input class="seal-form-input" type="datetime-local" v-model="prEditForm.expectedDeliveryDate" /></div>
|
|
|
+ <div class="seal-form-row"><span class="seal-form-label">备注</span><input class="seal-form-input" v-model="prEditForm.remark" placeholder="请输入" /></div>
|
|
|
+ <div style="display:flex;justify-content:space-between;padding:20px 0">
|
|
|
+ <van-button style="width:48%" @click="prEditVisible = false">取消</van-button>
|
|
|
+ <van-button style="width:48%" type="primary" @click="onPrEditSave">保存</van-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </van-popup>
|
|
|
+
|
|
|
<div>
|
|
|
|
|
|
<div v-if='isEdit'
|
|
|
@@ -553,6 +604,13 @@
|
|
|
tripEditMode: 'add',
|
|
|
tripEditScope: null,
|
|
|
tripEditIndex: null,
|
|
|
+ // 采购申请
|
|
|
+ prEditVisible: false,
|
|
|
+ prEditTitle: '添加物料',
|
|
|
+ prEditForm: { materialName: '', specification: '', unit: '', quantity: '', purpose: '', expectedDeliveryDate: '', remark: '' },
|
|
|
+ prEditMode: 'add',
|
|
|
+ prEditScope: null,
|
|
|
+ prEditIndex: null,
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
@@ -866,6 +924,28 @@
|
|
|
this.$refs.generateForm.setData({ input_if1cav3p: parts.join('') })
|
|
|
}
|
|
|
},
|
|
|
+ // ===== 采购申请 =====
|
|
|
+ openPrEditDialog(scope, mode, index) {
|
|
|
+ this.prEditScope = scope; this.prEditIndex = index; this.prEditMode = mode
|
|
|
+ if (mode === 'edit' && scope.model.blank_purchase_requisition[index]) {
|
|
|
+ var r = scope.model.blank_purchase_requisition[index]
|
|
|
+ this.prEditForm = { materialName: r.materialName||'', specification: r.specification||'', unit: r.unit||'', quantity: r.quantity||'', purpose: r.purpose||'', expectedDeliveryDate: r.expectedDeliveryDate||'', remark: r.remark||'' }
|
|
|
+ this.prEditTitle = '编辑物料'
|
|
|
+ } else {
|
|
|
+ this.prEditForm = { materialName: '', specification: '', unit: '', quantity: '', purpose: '', expectedDeliveryDate: '', remark: '' }
|
|
|
+ this.prEditTitle = '添加物料'
|
|
|
+ }
|
|
|
+ this.prEditVisible = true
|
|
|
+ },
|
|
|
+ async onPrEditSave() {
|
|
|
+ var scope = this.prEditScope, idx = this.prEditIndex, key = 'blank_purchase_requisition'
|
|
|
+ var data = await this.$refs.generateForm.getData(false)
|
|
|
+ if (!data[key]) data[key] = []
|
|
|
+ if (this.prEditMode === 'edit') data[key][idx] = JSON.parse(JSON.stringify(this.prEditForm))
|
|
|
+ else data[key].push(JSON.parse(JSON.stringify(this.prEditForm)))
|
|
|
+ this.$refs.generateForm.setData({ [key]: data[key] })
|
|
|
+ this.prEditVisible = false
|
|
|
+ },
|
|
|
async handleUploadLocal (model, rowIndex) {
|
|
|
console.log('上传本地文件按钮被点击,字段模型:', model, '行索引:', rowIndex)
|
|
|
let data = await this.$refs.generateForm.getData(false);
|