mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2025-08-09 23:59:01 +08:00
UI添加两个过滤器: 区域过滤器和类型过滤器
This commit is contained in:
parent
9291c4f628
commit
ea90f16e54
135
backend/.idea/workspace.xml
generated
135
backend/.idea/workspace.xml
generated
@ -20,8 +20,12 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="8b97a098-48b2-4e64-a9ef-522fe2d30b52" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/../web/src/components/TypeFilter.vue" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/sub-store.js" beforeDir="false" afterPath="$PROJECT_DIR$/sub-store.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web/src/components/RegionFilter.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../web/src/components/RegionFilter.vue" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web/src/config.js" beforeDir="false" afterPath="$PROJECT_DIR$/../web/src/config.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../web/src/views/SubEditor.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../web/src/views/SubEditor.vue" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -84,7 +88,8 @@
|
||||
<workItem from="1598846615232" duration="8566000" />
|
||||
<workItem from="1598859428550" duration="320000" />
|
||||
<workItem from="1598860098729" duration="530000" />
|
||||
<workItem from="1598861164355" duration="4516000" />
|
||||
<workItem from="1598861164355" duration="5198000" />
|
||||
<workItem from="1598876594229" duration="1648000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
@ -104,180 +109,180 @@
|
||||
<option name="oldMeFiltersMigrated" value="true" />
|
||||
</component>
|
||||
<component name="WindowStateProjectService">
|
||||
<state width="849" height="374" key="GridCell.Tab.0.bottom" timestamp="1598872112103">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.bottom" timestamp="1598877603951">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.0.bottom/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358068" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.bottom/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773766" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.bottom/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052766" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.bottom/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298702" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112103" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634610" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847575" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603951" />
|
||||
<state width="843" height="374" key="GridCell.Tab.0.bottom/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390883" />
|
||||
<state width="840" height="374" key="GridCell.Tab.0.bottom/70.23.1722.1097@70.23.1722.1097" timestamp="1598324500703" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.center" timestamp="1598872112103">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.center" timestamp="1598877603950">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.0.center/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358067" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.center/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773766" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.center/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052765" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.center/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298701" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112103" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634610" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847574" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603950" />
|
||||
<state width="843" height="374" key="GridCell.Tab.0.center/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390882" />
|
||||
<state width="840" height="374" key="GridCell.Tab.0.center/70.23.1722.1097@70.23.1722.1097" timestamp="1598324500702" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.left" timestamp="1598872112102">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.left" timestamp="1598877603950">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.0.left/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358067" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.left/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773765" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.left/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052763" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.left/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298699" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112102" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634609" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847574" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603950" />
|
||||
<state width="843" height="374" key="GridCell.Tab.0.left/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390882" />
|
||||
<state width="840" height="374" key="GridCell.Tab.0.left/70.23.1722.1097@70.23.1722.1097" timestamp="1598324500701" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.right" timestamp="1598872112103">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.right" timestamp="1598877603950">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.0.right/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358068" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.right/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773766" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.right/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052766" />
|
||||
<state width="850" height="374" key="GridCell.Tab.0.right/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298701" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112103" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634610" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847575" />
|
||||
<state width="849" height="374" key="GridCell.Tab.0.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603950" />
|
||||
<state width="843" height="374" key="GridCell.Tab.0.right/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390883" />
|
||||
<state width="840" height="374" key="GridCell.Tab.0.right/70.23.1722.1097@70.23.1722.1097" timestamp="1598324500702" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.bottom" timestamp="1598872112104">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.bottom" timestamp="1598877608668">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.1.bottom/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358069" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.bottom/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773767" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.bottom/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052626" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.bottom/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298587" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112104" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634521" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847575" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598877608668" />
|
||||
<state width="843" height="374" key="GridCell.Tab.1.bottom/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390883" />
|
||||
<state width="840" height="374" key="GridCell.Tab.1.bottom/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292666" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.center" timestamp="1598872112103">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.center" timestamp="1598877608667">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.1.center/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358069" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.center/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773766" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.center/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052625" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.center/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298586" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112103" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634520" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847575" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598877608667" />
|
||||
<state width="843" height="374" key="GridCell.Tab.1.center/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390883" />
|
||||
<state width="840" height="374" key="GridCell.Tab.1.center/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292666" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.left" timestamp="1598872112103">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.left" timestamp="1598877608667">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.1.left/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358069" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.left/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773766" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.left/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052625" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.left/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298586" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112103" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634520" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847575" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598877608667" />
|
||||
<state width="843" height="374" key="GridCell.Tab.1.left/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390883" />
|
||||
<state width="840" height="374" key="GridCell.Tab.1.left/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292665" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.right" timestamp="1598872112104">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.right" timestamp="1598877608667">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.1.right/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358069" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.right/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773766" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.right/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052625" />
|
||||
<state width="850" height="374" key="GridCell.Tab.1.right/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298587" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112104" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634520" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847575" />
|
||||
<state width="849" height="374" key="GridCell.Tab.1.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598877608667" />
|
||||
<state width="843" height="374" key="GridCell.Tab.1.right/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390883" />
|
||||
<state width="840" height="374" key="GridCell.Tab.1.right/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292666" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.bottom" timestamp="1598872112105">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.bottom" timestamp="1598877603856">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.2.bottom/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358071" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.bottom/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773767" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.bottom/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052626" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.bottom/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298588" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112105" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634521" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847576" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603856" />
|
||||
<state width="843" height="374" key="GridCell.Tab.2.bottom/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390884" />
|
||||
<state width="840" height="374" key="GridCell.Tab.2.bottom/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292666" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.center" timestamp="1598872112104">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.center" timestamp="1598877603855">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.2.center/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358070" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.center/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773767" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.center/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052626" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.center/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298587" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112104" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634521" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847576" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603855" />
|
||||
<state width="843" height="374" key="GridCell.Tab.2.center/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390884" />
|
||||
<state width="840" height="374" key="GridCell.Tab.2.center/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292666" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.left" timestamp="1598872112104">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.left" timestamp="1598877603855">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.2.left/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358070" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.left/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773767" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.left/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052626" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.left/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298587" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112104" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634521" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847576" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603855" />
|
||||
<state width="843" height="374" key="GridCell.Tab.2.left/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390883" />
|
||||
<state width="840" height="374" key="GridCell.Tab.2.left/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292666" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.right" timestamp="1598872112104">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.right" timestamp="1598877603855">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.2.right/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358070" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.right/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773767" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.right/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052626" />
|
||||
<state width="850" height="374" key="GridCell.Tab.2.right/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298587" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112104" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634521" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847576" />
|
||||
<state width="849" height="374" key="GridCell.Tab.2.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603855" />
|
||||
<state width="843" height="374" key="GridCell.Tab.2.right/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390884" />
|
||||
<state width="840" height="374" key="GridCell.Tab.2.right/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292666" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.bottom" timestamp="1598872112105">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.bottom" timestamp="1598877603856">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.3.bottom/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358072" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.bottom/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773768" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.bottom/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052627" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.bottom/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298589" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112105" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634522" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.bottom/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847577" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.bottom/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603856" />
|
||||
<state width="843" height="374" key="GridCell.Tab.3.bottom/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390884" />
|
||||
<state width="840" height="374" key="GridCell.Tab.3.bottom/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292667" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.center" timestamp="1598872112105">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.center" timestamp="1598877603856">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.3.center/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358071" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.center/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773768" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.center/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052626" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.center/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298588" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112105" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634522" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.center/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847576" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.center/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603856" />
|
||||
<state width="843" height="374" key="GridCell.Tab.3.center/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390884" />
|
||||
<state width="840" height="374" key="GridCell.Tab.3.center/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292667" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.left" timestamp="1598872112105">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.left" timestamp="1598877603856">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.3.left/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358071" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.left/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773767" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.left/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052626" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.left/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298588" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112105" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634521" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.left/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847576" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.left/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603856" />
|
||||
<state width="843" height="374" key="GridCell.Tab.3.left/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390884" />
|
||||
<state width="840" height="374" key="GridCell.Tab.3.left/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292667" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.right" timestamp="1598872112105">
|
||||
<screen x="60" y="23" width="1732" height="1097" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.right" timestamp="1598877603856">
|
||||
<screen x="62" y="23" width="1730" height="1097" />
|
||||
</state>
|
||||
<state width="840" height="374" key="GridCell.Tab.3.right/0.0.1792.1120@0.0.1792.1120" timestamp="1598115358072" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.right/51.23.1741.1097@51.23.1741.1097" timestamp="1598805773768" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.right/53.23.1739.1097@53.23.1739.1097" timestamp="1598865052627" />
|
||||
<state width="850" height="374" key="GridCell.Tab.3.right/55.23.1737.1097@55.23.1737.1097" timestamp="1598850298588" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872112105" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598871634522" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.right/60.23.1732.1097@60.23.1732.1097" timestamp="1598872847577" />
|
||||
<state width="849" height="374" key="GridCell.Tab.3.right/62.23.1730.1097@62.23.1730.1097" timestamp="1598877603856" />
|
||||
<state width="843" height="374" key="GridCell.Tab.3.right/67.23.1725.1097@67.23.1725.1097" timestamp="1598663390884" />
|
||||
<state width="840" height="374" key="GridCell.Tab.3.right/70.23.1722.1097@70.23.1722.1097" timestamp="1598233292667" />
|
||||
<state x="161" y="268" width="670" height="676" key="search.everywhere.popup" timestamp="1598787117227">
|
||||
|
@ -50,6 +50,7 @@ $app.route("/api/collection/:name")
|
||||
.get(getCollection)
|
||||
.patch(updateCollection)
|
||||
.delete(deleteCollection);
|
||||
|
||||
$app.route("/api/collection")
|
||||
.get(getAllCollections)
|
||||
.post(newCollection)
|
||||
@ -179,7 +180,7 @@ async function parseSub(sub, platform) {
|
||||
if (item.type.indexOf("Filter") !== -1) {
|
||||
const filter = AVAILABLE_FILTERS[item.type];
|
||||
if (filter) {
|
||||
$filter.addFilters(filter(...(item.args || [])));
|
||||
$filter.addFilters(filter(item.args));
|
||||
proxies = $filter.process(proxies);
|
||||
$.log(`Applying filter "${item.type}" with arguments:\n >>> ${item.args || "None"}`);
|
||||
}
|
||||
@ -1671,7 +1672,6 @@ function RegionFilter(regions) {
|
||||
"SG": "🇸🇬",
|
||||
"JP": "🇯🇵",
|
||||
"UK": "🇬🇧",
|
||||
"KR": "🇰🇷"
|
||||
};
|
||||
return {
|
||||
name: "Region Filter",
|
||||
|
@ -4,7 +4,7 @@
|
||||
<v-icon left color="primary">flag</v-icon>
|
||||
区域过滤
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn icon>
|
||||
<v-btn icon @click="$emit('deleteProcess', idx)">
|
||||
<v-icon color="error">mdi-delete</v-icon>
|
||||
</v-btn>
|
||||
<v-dialog>
|
||||
@ -18,7 +18,7 @@
|
||||
区域过滤器
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
根据区域过滤节点,不选则默认保留所有节点。
|
||||
根据区域过滤节点,至少需要保留一个区域!
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
@ -67,11 +67,25 @@ const regions = [
|
||||
}
|
||||
];
|
||||
export default {
|
||||
props: ["args"],
|
||||
data: function () {
|
||||
return {
|
||||
idx: this.$vnode.key,
|
||||
regions,
|
||||
selection: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.selection = this.args || [];
|
||||
},
|
||||
watch: {
|
||||
selection() {
|
||||
this.$emit("dataChanged", {
|
||||
idx: this.idx,
|
||||
type: "Region Filter",
|
||||
args: this.selection
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
91
web/src/components/TypeFilter.vue
Normal file
91
web/src/components/TypeFilter.vue
Normal file
@ -0,0 +1,91 @@
|
||||
<template>
|
||||
<v-card class="ml-1 mr-1 mb-1 mt-1">
|
||||
<v-card-title>
|
||||
<v-icon left color="primary">cloud_circle</v-icon>
|
||||
节点类型过滤
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn icon @click="$emit('deleteProcess', idx)">
|
||||
<v-icon color="error">mdi-delete</v-icon>
|
||||
</v-btn>
|
||||
<v-dialog>
|
||||
<template #activator="{on}">
|
||||
<v-btn icon v-on="on">
|
||||
<v-icon>help</v-icon>
|
||||
</v-btn>
|
||||
</template>
|
||||
<v-card>
|
||||
<v-card-title class="headline">
|
||||
节点类型过滤器
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
根据节点类型过滤节点,至少需要保留一种类型!
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
<v-chip-group multiple active-class="primary accent-4" v-model="selection" column>
|
||||
<v-chip
|
||||
class="ma-2"
|
||||
v-for="type in types"
|
||||
label
|
||||
:key="type.name"
|
||||
:value="type.value"
|
||||
>
|
||||
{{ type.name }}
|
||||
</v-chip>
|
||||
</v-chip-group>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const types = [
|
||||
{
|
||||
name: "Shadowsocks",
|
||||
value: "ss"
|
||||
},
|
||||
{
|
||||
name: "Shadowsocks R",
|
||||
value: "ssr"
|
||||
},
|
||||
{
|
||||
name: "V2Ray",
|
||||
value: "vmess"
|
||||
},
|
||||
{
|
||||
name: "Trojan",
|
||||
value: "trojan"
|
||||
},
|
||||
{
|
||||
name: "HTTP",
|
||||
value: "http"
|
||||
}
|
||||
];
|
||||
export default {
|
||||
props: ['args'],
|
||||
data: function () {
|
||||
return {
|
||||
idx: this.$vnode.key,
|
||||
types,
|
||||
selection: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.selection = this.args || [];
|
||||
},
|
||||
watch: {
|
||||
selection() {
|
||||
this.$emit("dataChanged", {
|
||||
idx: this.idx,
|
||||
type: "Type Filter",
|
||||
args: this.selection
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
@ -23,8 +23,12 @@
|
||||
</v-form>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn icon @click="save"><v-icon>save_alt</v-icon></v-btn>
|
||||
<v-btn icon @click="discard"><v-icon>settings_backup_restore</v-icon></v-btn>
|
||||
<v-btn icon @click="save">
|
||||
<v-icon>save_alt</v-icon>
|
||||
</v-btn>
|
||||
<v-btn icon @click="discard">
|
||||
<v-icon>settings_backup_restore</v-icon>
|
||||
</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
<v-card class="mb-4">
|
||||
@ -44,6 +48,7 @@
|
||||
<v-col>
|
||||
<v-radio label="删除" value="REMOVE"/>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
</v-radio-group>
|
||||
<v-radio-group
|
||||
@ -123,25 +128,69 @@
|
||||
</v-item-group>
|
||||
</v-form>
|
||||
</v-card>
|
||||
<v-card class="mb-4">
|
||||
<v-card class="mb-4" id="processors">
|
||||
<v-subheader>
|
||||
节点操作
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn icon>
|
||||
<v-icon color="primary">add_circle</v-icon>
|
||||
</v-btn>
|
||||
<v-dialog scrollable v-model="dialog">
|
||||
<template #activator="{on}">
|
||||
<v-btn icon v-on="on">
|
||||
<v-icon color="primary">add_circle</v-icon>
|
||||
</v-btn>
|
||||
</template>
|
||||
<v-card>
|
||||
<v-card-title>选择节点操作</v-card-title>
|
||||
<v-divider></v-divider>
|
||||
<v-card-text>
|
||||
<v-radio-group dense v-model="selectedProcess">
|
||||
<v-radio v-for="(k, idx) in Object.keys(availableProcessors)" :label="availableProcessors[k].name"
|
||||
:key="idx" :value="k"></v-radio>
|
||||
</v-radio-group>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="primary" text @click="addProcess(selectedProcess)">确认</v-btn>
|
||||
<v-btn text @click="dialog = false">取消</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
</v-subheader>
|
||||
<v-divider></v-divider>
|
||||
<component v-for="(p, idx) in processors"
|
||||
:is="p.component"
|
||||
:key="idx"
|
||||
:args="p.args"
|
||||
@dataChanged="dataChanged"
|
||||
@deleteProcess="deleteProcess"
|
||||
>
|
||||
</component>
|
||||
</v-card>
|
||||
</v-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {showError, showInfo} from "@/utils";
|
||||
import TypeFilter from "@/components/TypeFilter";
|
||||
import RegionFilter from "@/components/RegionFilter";
|
||||
|
||||
const AVAILABLE_PROCESSORS = {
|
||||
"Type Filter": {
|
||||
component: "TypeFilter",
|
||||
name: "类型过滤器"
|
||||
},
|
||||
"Region Filter": {
|
||||
component: "RegionFilter",
|
||||
name: "区域过滤器"
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
components: {RegionFilter, TypeFilter},
|
||||
data: function () {
|
||||
return {
|
||||
selectedProcess: null,
|
||||
dialog: false,
|
||||
validations: {
|
||||
nameRules: [
|
||||
v => !!v || "订阅名称不能为空!",
|
||||
@ -173,6 +222,20 @@ export default {
|
||||
this.$store.commit("SET_NAV_TITLE", sub.name ? `订阅编辑 -- ${sub.name}` : "新建订阅");
|
||||
this.options = loadSubscription(this.options, sub);
|
||||
},
|
||||
computed: {
|
||||
availableProcessors() {
|
||||
return AVAILABLE_PROCESSORS;
|
||||
},
|
||||
|
||||
processors() {
|
||||
return this.options.process.map(p => {
|
||||
return {
|
||||
component: AVAILABLE_PROCESSORS[p.type].component,
|
||||
args: p.args
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
save() {
|
||||
if (this.options.name && this.options.url) {
|
||||
@ -198,6 +261,19 @@ export default {
|
||||
|
||||
discard() {
|
||||
this.$router.back();
|
||||
},
|
||||
|
||||
dataChanged(content) {
|
||||
this.options.process[content.idx].args = content.args;
|
||||
},
|
||||
|
||||
addProcess(type) {
|
||||
this.options.process.push({type});
|
||||
this.dialog = false;
|
||||
},
|
||||
|
||||
deleteProcess(key) {
|
||||
this.options.process.splice(key, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -206,7 +282,8 @@ function loadSubscription(options, sub) {
|
||||
options = {
|
||||
...options,
|
||||
name: sub.name,
|
||||
url: sub.url
|
||||
url: sub.url,
|
||||
process: []
|
||||
}
|
||||
// flag
|
||||
for (const p of (sub.process || [])) {
|
||||
@ -220,6 +297,8 @@ function loadSubscription(options, sub) {
|
||||
case 'Set Property Operator':
|
||||
options[p.args[0]] = p.args[1] ? "FORCE_OPEN" : "FORCE_CLOSE";
|
||||
break
|
||||
default:
|
||||
options.process.push(p);
|
||||
}
|
||||
}
|
||||
return options;
|
||||
@ -253,9 +332,9 @@ function buildSubscription(options) {
|
||||
});
|
||||
}
|
||||
}
|
||||
// for (const p of options.process) {
|
||||
//
|
||||
// }
|
||||
for (const p of options.process) {
|
||||
sub.process.push(p);
|
||||
}
|
||||
return sub;
|
||||
}
|
||||
</script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user