调整接口

This commit is contained in:
sunjie
2025-10-10 00:54:16 +08:00
parent 507113b321
commit 38649d18c2
5 changed files with 156 additions and 172 deletions
@@ -6,6 +6,7 @@ class YuthonProperty(models.Model):
@api.model
def get_complete_ledger_report(self, params):
print("params:", params)
domain = []
if params.get("keyword"):
keyword = params["keyword"]
@@ -21,6 +22,11 @@ class YuthonProperty(models.Model):
if params.get("date_end"):
domain.append(("due_date", "<=", params.get("date_end")))
# condition, 这里需要放到具体的搜索条件中 domain .
condition = params.get('condition',False)
partner_id = params.get('partner_id',False)
company_id = params.get('company_id',False)
# # 6. 排除无效账单(作废/红冲)
# domain += [
# ("is_invalid", "=", False),
@@ -22,8 +22,8 @@ class ReceivableReport extends Component {
endDate: null,
keyword: "",
booleanValue:true,
partnerValue:false,
selectPartner:{},
selectCompany:{},
condition:false,
conditions:[{
'name':'自有',
@@ -60,22 +60,31 @@ class ReceivableReport extends Component {
async onChangeBoolean(v){
this.state.booleanValue = v
}
getDomainCompany(){
return []
}
getDomain(){
// 过滤条件
return [];
return [['id', 'in', [107,106, 215,112,110,214,218,173,219]]]
}
async onUpdatePartner(v){
console.log(v)
this.state.selectPartner = v
this.state.partnerValue = v.display_name
this.state.selectPartner = v[0]
}
async onUpdateCompany(v){
this.state.selectCompany = v[0]
}
async onSearch() {
const params = {
date_start: this.state.startDate,
date_end: this.state.endDate,
keyword: this.state.keyword,
keyword: this.state.keyword || false,
condition:this.state.condition || false,
partner_id:this.state.selectPartner?.id,
company_id:this.state.selectCompany?.id,
};
const result = await this.serviceOrm.call(
this.config.model,
@@ -36,12 +36,12 @@
<div class="col-3">
<label>所属公司</label>
<Many2XAutocomplete
value="state.partnerValue?.display_name"
getDomain="getDomain"
value="state.selectCompany?.display_name"
getDomain="getDomainCompany"
resModel="'yuthon.property.company'"
fieldString="'所属公司'"
activeActions="{}"
update.bind="onUpdatePartner"
update.bind="onUpdateCompany"
/>
</div>
<div class="col-3">
@@ -57,7 +57,7 @@
<div class="col-3">
<label>片区管理员</label>
<Many2XAutocomplete
value="state.partnerValue?.display_name"
value="state.selectPartner?.display_name"
getDomain="getDomain"
resModel="'res.users'"
fieldString="'片区管理员'"
@@ -22,16 +22,15 @@ class YouthonReport extends Component {
startDate: null,
endDate: null,
keyword: "", // 绑定的是 char 类型的数据 input 框,
booleanValue:true,
partnerValue:false, // 用于值的显示
selectPartner:{},
selectCompany:{},
condition:false,
conditions:[{
'name':'name1',
'value':'value1'
'name':'自有',
'value':'self'
},{
'name':'name2',
'value':'value2'
'name':'代管',
'value':'agency'
}]
});
@@ -61,22 +60,31 @@ class YouthonReport extends Component {
this.state.booleanValue = v
}
getDomainCompany(){
return []
}
getDomain(){
// 过滤条件
return [];
return [['id', 'in', [107,106, 215,112,110,214,218,173,219]]]
}
async onUpdatePartner(v){
console.log(v)
//
this.state.selectPartner = v[0]
}
async onUpdateCompany(v){
this.state.selectCompany = v[0]
}
async onSearch() {
const params = {
date_start: this.state.startDate,
date_end: this.state.endDate,
keyword: this.state.keyword,
keyword: this.state.keyword || false,
condition:this.state.condition || false,
partner_id:this.state.selectPartner?.id,
company_id:this.state.selectCompany?.id,
};
const result = await this.serviceOrm.call(
this.config.model,
@@ -96,11 +104,18 @@ class YouthonReport extends Component {
}
async onChangeStartDate(date){
// 这里修改 date
this.state.startDate = date;
console.log(date)
// 判断 date 是数组
if (Array.isArray(date)) {
this.state.startDate = date[0];
this.state.endDate = date[1]
}
}
async onChangeEndDate(date){
this.state.endDate = date;
if (Array.isArray(date)) {
this.state.startDate = date[0];
this.state.endDate = date[1]
}
}
}
YouthonReport.props = {...standardActionServiceProps };
@@ -3,162 +3,116 @@
<templates id="template" xml:space="preserve">
<t t-name="youthon_report.YouthonReport">
<div class="container-fluid d-flex flex-column h-100 mt-2 pb-3 ">
<div class="card mb-2">
<div class="row g-4">
<!-- <div class="card mb-2">-->
<!-- <div class="row g-4">-->
<!-- 未处理违约金 -->
<div class="col-md-4">
<div class="stat-card danger bg-white">
<div class="stat-label mb-2">未处理违约金</div>
<div class="stat-value text-dark">¥245,890.00</div>
<div class="stat-change text-danger mt-1">
▲ 12.5% <small class="text-muted">较上月</small>
</div>
</div>
</div>
<!-- &lt;!&ndash; 未处理违约金 &ndash;&gt;-->
<!-- <div class="col-md-4">-->
<!-- <div class="stat-card danger bg-white">-->
<!-- <div class="stat-label mb-2">未处理违约金</div>-->
<!-- <div class="stat-value text-dark">¥245,890.00</div>-->
<!-- <div class="stat-change text-danger mt-1">-->
<!-- ▲ 12.5% <small class="text-muted">较上月</small>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- 已收回违约金 -->
<div class="col-md-4">
<div class="stat-card success bg-white">
<div class="stat-label mb-2">已收回违约金</div>
<div class="stat-value text-dark">¥1,320,560.00</div>
<div class="stat-change text-success mt-1">
▲ 8.2% <small class="text-muted">较上月</small>
</div>
</div>
</div>
<!-- &lt;!&ndash; 已收回违约金 &ndash;&gt;-->
<!-- <div class="col-md-4">-->
<!-- <div class="stat-card success bg-white">-->
<!-- <div class="stat-label mb-2">已收回违约金</div>-->
<!-- <div class="stat-value text-dark">¥1,320,560.00</div>-->
<!-- <div class="stat-change text-success mt-1">-->
<!-- ▲ 8.2% <small class="text-muted">较上月</small>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- 违约合同数 -->
<div class="col-md-4">
<div class="stat-card info bg-white">
<div class="stat-label mb-2">违约合同数</div>
<div class="stat-value text-dark">148</div>
<div class="stat-change text-danger mt-1">
▲ 3.1% <small class="text-muted">较上月</small>
</div>
</div>
</div>
<!-- &lt;!&ndash; 违约合同数 &ndash;&gt;-->
<!-- <div class="col-md-4">-->
<!-- <div class="stat-card info bg-white">-->
<!-- <div class="stat-label mb-2">违约合同数</div>-->
<!-- <div class="stat-value text-dark">148</div>-->
<!-- <div class="stat-change text-danger mt-1">-->
<!-- ▲ 3.1% <small class="text-muted">较上月</small>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div>
<!-- </div>-->
<!-- </div>-->
<div class="card mb-2">
<div class="card-body">
<!-- 搜索区域 -->
<div class="row mb-2" t-ref="search_area">
<!-- 应收日期范围 -->
<div class="col-3">
<label>日期范围</label>
<div class="d-flex align-items-center gap-2">
<DateTimeInput
range="true"
value="state.startDate"
type="'date'"
placeholder="fromPlaceholder"
onChange="(date) => this.onChangeStartDate(date)"
/>
<i class="oi oi-arrow-right"></i>
<DateTimeInput
range="true"
value="state.endDate"
type="'date'"
placeholder="toPlaceholder"
onChange="(date) => this.onChangeEndDate(date)"
/>
</div>
</div>
<!-- 所属公司 -->
<div class="col-3">
<label>所属公司</label>
<Many2XAutocomplete
value="state.selectCompany?.display_name"
getDomain="getDomainCompany"
resModel="'yuthon.property.company'"
fieldString="'所属公司'"
activeActions="{}"
update.bind="onUpdateCompany"
/>
</div>
<div class="col-3">
<label>权属类型</label>
<select id="formview_default_conditions" class="o_input" t-model="state.condition">
<option t-foreach="state.conditions" t-as="cond"
t-att-value="cond.value"
t-key="cond.name">
<t t-esc="cond.name"/>
</option>
</select>
</div><!-- 片区管理员 -->
<div class="col-3">
<label>片区管理员</label>
<Many2XAutocomplete
value="state.selectPartner?.display_name"
getDomain="getDomain"
resModel="'res.users'"
fieldString="'片区管理员'"
activeActions="{}"
update.bind="onUpdatePartner"
/>
</div>
<!-- 操作按钮 -->
<div class="col-12 mt-3 d-flex justify-content-end gap-2">
<button class="btn btn-primary" t-on-click="onSearch">搜索</button>
<button class="btn btn-success" t-on-click="onExportExcel">导出</button>
</div>
</div>
<div class="card mb-2 ">
<div class="card-body">
<!-- 搜索区域 -->
<div class="row mb-2" t-ref="search_area">
<!-- m2o -->
<div class="col-4">
<label>筛选</label>
<Many2XAutocomplete
value="state.selectPartner?.display_name"
resModel="'res.partner'"
getDomain="getDomain"
fieldString="'客户'"
activeActions="{}"
update.bind="onUpdatePartner"
/>
</div>
<div class="col-4">
<label>条件</label>
<select id="formview_default_conditions" class="o_input" t-model="state.condition">
<option t-foreach="state.conditions" t-as="cond"
t-att-value="cond.value"
t-key="cond.name">
<t t-esc="cond.name"/>
</option>
</select>
</div>
<!-- bool -->
<div class="col-4">
<label>Boolean</label>
<CheckBox value="state.booleanValue"
className="'o_field_boolean o_boolean_toggle form-switch'"
onChange.bind="onChangeBoolean">
&#8203;
</CheckBox>
</div>
<div class="col-4">
<label>日期范围</label>
<DateTimeInput
value="state.startDate"
type="'date'"
placeholder="fromPlaceholder"
onChange="(date) => this.onChangeStartDate(date)"
/>
<i class="oi oi-arrow-right"></i>
<DateTimeInput
value="state.endDate"
type="'date'"
placeholder="toPlaceholder"
onChange="(date) => this.onChangeEndDate(date)"
/>
</div>
<div class="col-4">
<label>日期范围</label>
<div class="row">
<div class="col-5">
<DateTimeInput
value="state.startDate"
type="'date'"
placeholder="fromPlaceholder"
onChange="(date) => this.onChangeStartDate(date)"
/>
</div>
<div class="col-2">至</div>
<div class="col-5">
<DateTimeInput
value="state.startDate"
type="'date'"
placeholder="fromPlaceholder"
onChange="(date) => this.onChangeStartDate(date)"
/>
</div>
</div>
</div>
<div class="col-4">
<label>日期范围</label>
<DateTimeInput
value="state.startDate"
type="'date'"
placeholder="fromPlaceholder"
onChange="(date) => this.onChangeStartDate(date)"
/>
<i class="oi oi-arrow-right"></i>
<DateTimeInput
value="state.endDate"
type="'date'"
placeholder="toPlaceholder"
onChange="(date) => this.onChangeEndDate(date)"
/>
</div>
<div class="col-4">
<label>关键字(datetime)</label>
<DateTimeInput
value="state.startDate"
type="'datetime'"
placeholder="fromPlaceholder"
onChange="(date) => this.onChangeStartDate(date)"
/>
<i class="oi oi-arrow-right"></i>
<DateTimeInput
value="state.endDate"
type="'datetime'"
placeholder="toPlaceholder"
onChange="(date) => this.onChangeEndDate(date)"
/>
</div>
<div class="col-4 align-self-end">
<button class="btn btn-primary" t-on-click="onSearch">搜索</button>
<button class="btn btn-primary" t-on-click="onExportExcel">导出</button>
</div>
</div>
</div>
</div>
</div>
<!-- ag-grid 区域 -->
<div class="row flex-grow-1">